Como envío el valor de una variable a una tabla (Access VB)

Quisiera enviar el valor de una variable a una tabla, tengo la siguiente sentencia

DoCmd.RunSQL "insert Into Registro(Fecha,Auditor,[Unidad nueva/anterior],[Cantidad de cajas con defectos])Values (" & Format(Date, "mm/dd/yyyy") & ",Cuadro_combinado142,Form!Combo180," & Nca & ")"

El nombre de la variable es Nca y es justo el valor que no puedo mandar a la tabla, si elimino el campo y esa variable me crea el registro sin problemas, el problema es si quiero que en vez de un cuadro de texto mande una variable, ahí es cuando me sale error.

2 Respuestas

Respuesta
1

Pruebe con este código.

DoCmd.RunSQL "insert Into Registro(Fecha,Auditor,[Unidad nueva/anterior],[Cantidad de cajas con defectos])Values (" & _
Format(Date, "\#mm\/dd\/yyyy\#") & "," & Me.Cuadro_combinado142 & "," & Me.Combo180 & "," & Nca & ")"

No puede insertar una fecha con este formato Format(Date, "mm/dd/yyyy"), el SQL solo entiende formato Americano dd/mm/yyyy.

Estoy de acuerdo si va a almacenar la fecha como texto puede utilizar:

DoCmd.RunSQL "insert Into Registro(Fecha,Auditor,[Unidad nueva/anterior],[Cantidad de cajas con defectos])Values ('" & _
 Date & "'" & "," & "'" & Me.Cuadro_combinado142 & "," & Me.Combo180 & "," & Nca & ")"

Observe que no necesita Format(). En su caso es que faltan el apostrofe al comienzo y al final de Format().

Gracias, aunque mi problema no es con la fecha, ese campo si lo llena, el problema que tengo es con la variable Nca, cuando añadí un campo nuevo a la tabla y quise enviar la variable Nca a ese campo nuevo es cuando no me funciona.

Revisando, en lo que tengo problema es cuando se asigna la variable Nca, yo le asigne el valor de un cuadro de texto.

Nca=Texto21.Value

ese texto es un numero que yo inserto, si yo asiganara Nca=4 o a cualquier otro numero, me crea el registro sin problema, entonces mi problema es que la variable Nca no esta tomando el valor del cuadro de texto, esa variable esta declarada como Integer.

Pruebe reemplazando Nca en la instruccion sql por Texto21.Value

Respuesta

Todo depende de que tipo sea el campo Fecha de la tabla Registros. Si es texto, claro que puedes poner la instrucción como la tienes. Por ejemplo, supongamos que tengo el formulario con dos combinados. En el primero elijo el auditor

En el segundo elijo un número

Cuando pulso Enviar, aunque puede ser en cualquier otro evento, me deja la tabla como

Al no saber el valor de esa variable NCA le he puesto uno cualquiera. El código del evento Al hacer clic del botón es

Private Sub Comando38_Click()
Dim NCA As Integer
NCA = DCount("*", "clientes", "pais=""Alemania""")
DoCmd.RunSQL "insert into registro(fecha,auditor,[Unidad nueva/anterior],[cantidad de cajas con defectos])values('" & Format(Date, "mm/dd/yyyy") & "','" & Me.Combo142 & "'," & Me.Combo180 & "," & NCA & ")"
End Sub

Pero ya te digo, que lo de format es válido si el campo Fecha de la tabla es texto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas