Actualizar tabla desde subformulario con combox independientes

Tengo un formulario que a su vez contiene un subformulario. En el subformulario tengo 2 combox dependientes, el segundo del primero, es decir, el primer combo se llama Matricula y el segundo Cisterna. Cuando pongo la matrícula me sale directamente el dato Cisterna.
El segundo combo (Cisterna), lo tengo como campo independiente y me busca el valor con el siguiente Origen del Control: =DBúsq("[CODI CISTERNA]";"[Letra Q Cisternas]";"MATRICULA ='" & [Formulario]![Matricula] & "' ").

Al tenerlo independiente no me actualiza el valor en la tabla, he creado un botón para actualizar, con el siguiente código, pero me da error de sintaxis:

Private Sub OK_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into Entregas LECHE(Cisterna)Values('" & Forms!Subformulario Entregas LECHE!Cisterna.Value & "')"
DoCmd.SetWarnings True
End Sub

Tabla: Entregas LECHE
Campo de texto: Cisterna
Subformulario: Entregas LECHE

Además como el subformulario recoge varios registros, me gustaría que el botón no fuera línea por línea, sino que cuando haya acabado de introducir todos los registros, clicar una sola vez y que me actualize todos los datos

También he probado hacer todo el subformulario independiente, pero me pasa lo mismo y además tengo el problema que no se como vincular el formulario con subformulario independiente. Existe un nº de registro por el cual están vinculados los datos de uno y de otro.

Si me puedes ayudar, te lo agradezco, ya que al querer hacer ésta mejora en la bd se me ha descabalado todo un poco.

1 respuesta

Respuesta

Lo que quieres hacer no es imposible, solo un poco (o bastante) complicado.

Necesito saber las relaciones entre tablas, tipos de datos de los campos en las tablas, etc. Es posible que el error sea debido a que construyes mal la sentencia SQL.

Una posible solución sería que el TextBox del subformulario esté vinculado al campo de la tabla y actualizar el TextBox por código, aunque los ComboBox no sean dependientes de esa tabla ni del formulario.

Hola buenas,

Tengo un formulario que a su vez contiene un subformulario independiente. En el subformulario tengo 2 cuadros combinados en cascada, el 1º se llama Matricula y el 2º Cisterna.
El 2º cuadro (Cisterna) me busca el valor con el siguiente;


Origen del Control: =DBúsq("[CODI CISTERNA]";"[Letra QUE Cisternas]";"MATRICULA ='" & [Formulario]![Matricula] & "' ").


Hasta aquí todo funciona bien pero, al tenerlo independiente no me inserta los valores en la tabla, he creado un botón para actualizar, con el siguiente código, pero me da el error 3346 El numero de valores de consulta y el numero de campos de destino son diferentes:

El código que he puesto es:


Private Sub ok_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into Entregas_LECHE (Fecha,Kgs,Litros,Tanque,Matricula,Cisterna,Muestras) Values (cDate('" & Form!txtFecha.Value & "')," & Form!txtKgs & "," & Form!txtLitros & ",'" & Form!txtTanque & "','" & Form!txtMatricula & "','" & Form!txtCisterna & "','" & Form!txtMuestras & "')"
DoCmd.SetWarnings True
End Sub

He comprobado que el tipo de datos fuera igual tanto en la tabla como en el subformulario, pero no hay manera, te indico;

Fecha: Fecha/Hora

Kgs y Litros: numérico

Tanque, Matrícula, Cisterna y Muestras: texto

Además como el subformulario recoge varios registros, me gustaría que el botón no fuera línea por línea, sino que cuando haya acabado de introducir todos los registros, clicar una sola vez y que me actualize todos los datos

Gracias por tu ayuda, saludos.

Prueba lo siguiente:

Private Sub ok_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert Into Entregas_LECHE (Fecha, Kgs, Litros, Tanque, Matricula, Cisterna, Muestras) " & _
 "Select (" & _
 "#" & Format(Me!txtFecha.Value, "mm/dd/yyyy") & "#, " & _
 Form!txtKgs & ", " & _
 Form!txtLitros & ", '" & _
 Form!txtTanque & "', '" & _
 Form!txtMatricula & "', '" & _
 Form!txtCisterna & "', '" & _
 Form!txtMuestras & "')"
DoCmd.SetWarnings True
End Sub

Lo de hacer que se ejecute con todos los registros... pues la verdad, ya estás actualizando algunas tablas si la información está en formularios continuos.

Hola buenas, no me funciona me sale el error '3075'. Error de sintaxis (falta operador) en la expresión de consulta '(# #,,,",",",")'.

En la última expresión : Form!txtMuestras & "')" tiene que aparecer un "SI" como valor predeterminado y también me daba error.

Disculpa que haya tardado tanto en responder, el trabajo....

Gracias y un saludo

Perdona por tardar en responderte.
El error de sintaxis es porque el dato de txtFecha está en blanco. El último también estaría en blanco.
Lo que te puse escribe los datos del formulario en la tabla, si el formulario no tiene datos puede dar errores, como te ha pasado, y escribir unas rutinas de verificación para que escriba valores por defecto en caso de que el dato no exista es bastante más complejo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas