Access, consultar y modificar registros de una tabla

Como lo mencioné en una consulta anterior soy nuevo en Access y recurro a los expertos para las sentencias SQL para el manejo de las tablas.

Mediante el siguiente código adiciono campos a la tabla t100Clientes

‘Verifica que no existan campos nulos

If Not IsNull (txbDNICliente) And Not IsNull (txbNombreCliente) And Not IsNull (txbFechaNacimientoCliente) ... Demás textbox... Then 

‘Inserta el registro en la tabla Clientes

DoCmd. RunSQL "insert into t100Clientes (DNICliente, NombreCliente, FechaNacimientoCliente, Telefono1Cliente, Telefono2Cliente, TipoViviendaCliente, CondominioCliente, " _

& " DireccionCliente, Email1Cliente, Email2Cliente) select forms! FrmClientes! TxbDNICliente, forms! FrmClientes! TxbNombreCliente, forms! FrmClientes! TxbFechaNacimientoCliente, " _

& " Forms! FrmClientes! TxbTelefono1Cliente, forms! FrmClientes! TxbTelefono2Cliente, forms! FrmClientes! CmbTipoVivienda, forms! FrmClientes! CmbCondominios, " _

& " Forms! FrmClientes! TxbDireccionCliente, forms! FrmClientes! TxbCorreo1Cliente, forms! FrmClientes! TxbCorreo2Cliente from t099Registros;", -1

Y un mensaje que dice que los datos fueron registrados.

La tabla t100Clientes su llave y primer campo es idCliente autonumérico, el segundo campo es DNICliente (cédula cliente) y en seguida los demás campos

Ahora quisiera su ayuda con lo siguiente:

Tengo el formulario frmConsultaClientes en donde tengo el combobox cmbDNIliente y llena los datos de los números de identificación de los clientes, t100Clientes - DNICliente.

1-. Consulta (puede ser con el botón btnconsulta)

La idea es que llene los textbox con los datos de la tabla ejemplo

txbNombreCliente = t100Clientes – NombreCliente

txbTelefono1Cliente = t100Clientes – Telefono1Cliente

txbDireccionCliente = t100Clientes – DireccionCliente

Así sucesivamente

2-. Actualización botón btnActualizar

Cambiar cualquier dato de los textbox por ejemplo la dirección del cliente, al modificar el txbDireccionCliente y darle click en btnActualizar modifique el registro en la tabla con la nueva dirección, bien sea actualizando uno o varios datos.

2 respuestas

Respuesta
1

Por partes, si lo que vas a guardar en la tabla son los valores que aparecen en el registro actual del formulario la instrucción basta co ponerla simplemente como

Docmd. Runsql"insert into tablaA(nombrecliente, ciudad, pais)values(cuadro de texto0, cuadro de texto2, cuadro de texto4)"

Donde pongo cuadro de texto0, etc, son los nombres de los cuadros de texto(propiedades-Otras-Nombre). Los campos destino y origen no tienen porque llamarse iguales pero si ser de datos compatibles.

Si posteriormente quieres actualizar un valor de un campo de un registro determinado puedes usar

docmd.runsql"update tablaA set ciudad= Cuadrodetexto4 where nombrecliente=""Pepe"""

Es decir, el criterio individualiza el(los) registro(s) que van a ser cambiados

Hola Icue, gracias por la ayuda.

el insert into me funciona, lo que quiero hacer el punto 1-. es que cuando elija el DNICliente en el combobox, me llene los textbox con los datos de la tabla t101Contratos, como hice el ejemplo en la pregunta inicial. agradezco si me das luces de como hacerlo.

saludos y gracias..

jorgef

Todo depende de como sea el formulario. Voy a poner las dos posibilidades.

1º Que el formulario sea dependiente de la tabla Clientes y que el combinado sea independiente y esté en el encabezado y lo usas para "buscar" un registro que cumpla una condición. En el evento Después de actualizar del cuadro combinado al que llamaremos Elegir puedes crear un procedimiento de evento y entre Private Sub y End sub puedes poner

me.recordsource=" select * from Clientes where DNICliente='" & me.elegir & "'"

Es decir, que el origen de registro del formulario sea aquel de la tabla Clientes en que el dnicliente sea igual

(Estoy suponiendo que DNICliente es texto, si fuera numérico sería

me.recordsource="select * from clientes where DNICliente=" & me.elegir & ""

Vamos a suponer que el combinado no está en el encabezado, sino en un registro. En ese caso tendrías que usar, en el mismo evento,

Nombrecliente=dlookup("nombrecliente","clientes","dnicliente='" & me.elegir & "'"

Direccion=dlookup("direccion","clientes","dnicliente='" & me.elegir & "'"

Etc.

En fin, si pudieras concretar como es el formulario(bastaría con una imagen del diseño), se podría "afinar" más.

Respuesta
1

Adicione un cuadro de lista, en incluya en este el idCliente y los demàs campos que quiere mostrar en los cuadros de texto, haga uso de la propiedad Column(). Por ejemplo, para el campo txbNombreCliente del formulario consulta en las propiedades asigne en origen del control la columna respectiva del cuadro de lista, algo como

CboClientes. Column(1) y asi para los demas campos del formulario.

Ahora para actualizar los cambios  puede usar UPDATE.... pero en la clausula WHERE debe ir idCliente=" & Me.cbCliente.

Puede omitir el botòn btnActualizar si usa la propiedad Dirty en respectivo campo y en el evento Después de Actualizar incluir el UPDATE.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas