Guardar Datos en Access desde Visual Basic 6.0
Estoy trabajando con una base de datos access desde visual basic 6.0, cuando intento actualizar un registro o guardar uno nuevo me envía el siguiente error (Error de Sintaxis Falta Operador en la Exprision de Consulta), ya he intentado depurar el código agrgandole comillas dobles o comillas simples cuando sea el caso, pero me sigue enviando el mismo error y no puedo actualizar ni insertar un registro nuevo.
Este es el código que estoy utilizando:
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = " & Text1(1) & _
", Apellidos = " & Text1(2) & _
" ,Cedula = " & Text1(3) & _
", Fecha_Nac = " & Text1(4) & _
", Lugar_Exp = " & Text1(5) & _
", Fecha_Ing = " & Text2 & _
", Fecha_Ret = " & Text3 & _
", Fecha_Traslado_Fondo = " & Text4 & _
" 'where Text1(3) = " & Cedula & ""
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES(" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(5) & "','" & _
Text1(4) & "','" & _
Text2 & "','" & _
Text3 & "," & _
Text4 & "," & _
Format(Date, "dd/mm/yyyy") & "')"
End Select
Por favor cualquier ayuda que me puedan brindar se las agradecería, ya que soy nuevo en esto de la programación.
Este es el código que estoy utilizando:
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = " & Text1(1) & _
", Apellidos = " & Text1(2) & _
" ,Cedula = " & Text1(3) & _
", Fecha_Nac = " & Text1(4) & _
", Lugar_Exp = " & Text1(5) & _
", Fecha_Ing = " & Text2 & _
", Fecha_Ret = " & Text3 & _
", Fecha_Traslado_Fondo = " & Text4 & _
" 'where Text1(3) = " & Cedula & ""
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES(" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(5) & "','" & _
Text1(4) & "','" & _
Text2 & "','" & _
Text3 & "," & _
Text4 & "," & _
Format(Date, "dd/mm/yyyy") & "')"
End Select
Por favor cualquier ayuda que me puedan brindar se las agradecería, ya que soy nuevo en esto de la programación.
1 Respuesta
Respuesta de jeddy
1
1
jeddy, Desarrollo de Aplicaciones Access, Sql Server, Visual Basic, Excel
Hay algunos problemas con sus sentencias
1.- Cuando actualizas campos tipo texto el valor debe estar entre comillas
Set Nombres = '" & Text1(1) & "'" & _
o
Set Nombres = """ & Text1(1) & """" & _
Si se trata de fechas debe estar entre #
", Fecha_Ing = #" & Text2 & "#" & _
Para que la fecha se almacene correctamente el formato en que debe estar tu fecha debe ser mm/dd/yyyy
lo mismo para el insert
.....Fondo) VALUES( '" & _
Text1(1) & "','" & _
Saldos.
1.- Cuando actualizas campos tipo texto el valor debe estar entre comillas
Set Nombres = '" & Text1(1) & "'" & _
o
Set Nombres = """ & Text1(1) & """" & _
Si se trata de fechas debe estar entre #
", Fecha_Ing = #" & Text2 & "#" & _
Para que la fecha se almacene correctamente el formato en que debe estar tu fecha debe ser mm/dd/yyyy
lo mismo para el insert
.....Fondo) VALUES( '" & _
Text1(1) & "','" & _
Saldos.
Buenas noches, gracias por tu ayuda, pero cuando intento realizar los cambios que me sugeriste me envía el siguiente mensaje de error, el numero de valores de consulta y el numero de campos de destino son diferentes, así quedo el código luego de realizar los cambios que me sugeriste.
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = " & Text1(1) & _
", Apellidos = " & Text1(2) & _
", Fecha_Nac = " & Text1(4) & _
", Lugar_Exp = " & Text1(5) & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(5) & "','" & _
Text1(4) & "','" & _
Text2 & "','" & _
Text3 & "," & _
Text4 & "," & _
Format(Date, "dd/mm/yyyy") & "')"
End Select
Nuevamente gracias por tu ayuda.
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = " & Text1(1) & _
", Apellidos = " & Text1(2) & _
", Fecha_Nac = " & Text1(4) & _
", Lugar_Exp = " & Text1(5) & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(5) & "','" & _
Text1(4) & "','" & _
Text2 & "','" & _
Text3 & "," & _
Text4 & "," & _
Format(Date, "dd/mm/yyyy") & "')"
End Select
Nuevamente gracias por tu ayuda.
'El Codigo deberia quedar asi
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
'Ojo que Fecha_Nac esta considerada como tipo fecha y en el Where Cedula esta como numerico si es tipo texto deberia estar: Cedula = '" & Text1(3) & "'"
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(5) & "','" & _
Text1(4) & "','" & _
Text2 & "','" & _
Text3 & "," & _
Text4 & "," & _
Format(Date, "dd/mm/yyyy") & "')"
End Select
'Nuevamente gracias por tu ayuda.
'En la Consulta Insert efectivamente el numero de valores de consulta y el numero de campos de destino son diferentes.
'los campos destino son 8: (Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo)
' y los de destino son 9: Text1(1)......
Ademas si son Tipo fecha deben de ir entre #
................"',#" & _
Textx & "#,'" & _
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
'Ojo que Fecha_Nac esta considerada como tipo fecha y en el Where Cedula esta como numerico si es tipo texto deberia estar: Cedula = '" & Text1(3) & "'"
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(5) & "','" & _
Text1(4) & "','" & _
Text2 & "','" & _
Text3 & "," & _
Text4 & "," & _
Format(Date, "dd/mm/yyyy") & "')"
End Select
'Nuevamente gracias por tu ayuda.
'En la Consulta Insert efectivamente el numero de valores de consulta y el numero de campos de destino son diferentes.
'los campos destino son 8: (Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo)
' y los de destino son 9: Text1(1)......
Ademas si son Tipo fecha deben de ir entre #
................"',#" & _
Textx & "#,'" & _
Buenos días, nuevamente acudo a usted en busca de ayuda, disculpe tanta molestia al respecto pero como le explique estoy iniciando en esto de la programación y muchas cosas aun se me dificultan, mi problema ahora, una vez realice los cambios sugeridos por usted, es relacionado con las fechas, el error que me envía es el siguiente: Error de sintaxis (Falta Operador) en la expresión de consulta "13/12/1952'#'01/11/1984'#"#'04/04/1994'#'dd/mm/yyyy". estuve revisando que fuera alguna comilla doble o simple pero siempre genera el mismo error. Adjunto el código para que por favor lo revise y me de sus sugerencias.
Gracias por su ayuda.
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "," & _
Text1(5) & "','" & _
Text1(4) & "'#'" & _
Text2 & "'#'" & _
Text3 & "'#'" & _
Text4 & "'#'" & _
Format("dd/mm/yyyy") & "')"""
End Select
Gracias por su ayuda.
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
cnn.Execute "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "," & _
Text1(5) & "','" & _
Text1(4) & "'#'" & _
Text2 & "'#'" & _
Text3 & "'#'" & _
Text4 & "'#'" & _
Format("dd/mm/yyyy") & "')"""
End Select
Dim Qry As String
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
Qry = "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('"
Qry = Qry & Text1(1) & "','" 'Nombre
Qry = Qry & Text1(2) & "','" 'Apellido
Qry = Qry & Text1(3) & "','" 'Cedula
Qry = Qry & Text1(5) & "'" 'Lugar de Exp
Qry = Qry & ",'" & Text1(4) & "'" '********** ESTA LINEA ESTA POR DEMAS -ELIMINAR ****
Qry = Qry & ",#" & Text2 & "#,#" 'Fecha de Nacimiento
Qry = Qry & Text3 & "#,#" 'Fecha de ingreso
Qry = Qry & Text4 & "#,#" 'Fecha Ret
Qry = Qry & Format(Date, "mm/DD/yyyy") & "#)" 'Fecha de Traslado de fondOS
cnn.Execute Qry
End Select
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
Qry = "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('"
Qry = Qry & Text1(1) & "','" 'Nombre
Qry = Qry & Text1(2) & "','" 'Apellido
Qry = Qry & Text1(3) & "','" 'Cedula
Qry = Qry & Text1(5) & "'" 'Lugar de Exp
Qry = Qry & ",'" & Text1(4) & "'" '********** ESTA LINEA ESTA POR DEMAS -ELIMINAR ****
Qry = Qry & ",#" & Text2 & "#,#" 'Fecha de Nacimiento
Qry = Qry & Text3 & "#,#" 'Fecha de ingreso
Qry = Qry & Text4 & "#,#" 'Fecha Ret
Qry = Qry & Format(Date, "mm/DD/yyyy") & "#)" 'Fecha de Traslado de fondOS
cnn.Execute Qry
End Select
Perdone tantas molestias que le ocasiono pero es que aun estoy algo confundido con esta linea de código, usted me dice que elimine la linea del Text1(4) y le asigne al Text2 el recibir esa información pero donde queda el text1(4) si en formulario de captura es ese text quien debe recibir esa información, ademas el Text3 no es la fecha de ingreso sino de retiro y así los demás, al hacer los cambios me envía el siguiente mensaje de error INSTRUCCIÓN SQL NO VALIDA SE ESPERABA DELETE, INSERT, PROCEDURE, SELECT O UPDATE.
Esta vez te adjunto toda la linea de código que tengo a ver en que me puedes seguir ayudando.
Mil gracias por tu ayuda.
Option Explicit
Enum EACCION
AGREGAR_REGISTRO = 0
EDITAR_REGISTRO = 1
End Enum
Public Cedula As Long
Public ACCION As EACCION
Private Sub cmdGuardar_Click()
On Error GoTo ErrorSub
' Valida el Cedula
''''''''''''''''''''''''''''''''
If Trim(Text1(3)) = "" Then
MsgBox "No se ha Escrito la Cedula", vbCritical, "Datos incompletos"
Text1(3).SetFocus
Exit Sub
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Dim Qry As String
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
Qry = "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Qry = Qry & Text1(1) & "','" 'Nombre
Qry = Qry & Text1(2) & "','" 'Apellido
Qry = Qry & Text1(3) & "','" 'Cedula
Qry = Qry & Text1(5) & "'" 'Lugar de Expedicion
Qry = Qry & ",#" & Text2 & "#,#" 'Fecha de Nacimiento
Qry = Qry & Text3 & "#,#" 'Fecha de Ingreso
Qry = Qry & Text4 & "#,#" 'Fecha de Retiro
Qry = Qry & Format(Date, "mm/dd/yyyy") & "#)"
cnn.Execute Qry
End Select
rs.Requery 1
Call CargarListView(FrmPrincipal.LV, rs)
DoEvents
Unload Me
Set FrmEdit = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub cmdCancelar_Click()
Unload Me
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Esta vez te adjunto toda la linea de código que tengo a ver en que me puedes seguir ayudando.
Mil gracias por tu ayuda.
Option Explicit
Enum EACCION
AGREGAR_REGISTRO = 0
EDITAR_REGISTRO = 1
End Enum
Public Cedula As Long
Public ACCION As EACCION
Private Sub cmdGuardar_Click()
On Error GoTo ErrorSub
' Valida el Cedula
''''''''''''''''''''''''''''''''
If Trim(Text1(3)) = "" Then
MsgBox "No se ha Escrito la Cedula", vbCritical, "Datos incompletos"
Text1(3).SetFocus
Exit Sub
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Dim Qry As String
Select Case ACCION
Case EDITAR_REGISTRO
cnn.Execute "UPDATE TB_EMPLEADOS Set Nombres = '" & Text1(1) & "'" & _
", Apellidos = '" & Text1(2) & "'" & _
", Fecha_Nac = #" & Text1(4) & "#" & _
", Lugar_Exp = '" & Text1(5) & "'" & _
", Fecha_Ing = #" & Text2 & "#" & _
", Fecha_Ret = #" & Text3 & "#" & _
", Fecha_Traslado_Fondo = #" & Text4 & "#" & _
" 'where Cedula = " & Text1(3) & ""
Case AGREGAR_REGISTRO
Qry = "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('" & _
Qry = Qry & Text1(1) & "','" 'Nombre
Qry = Qry & Text1(2) & "','" 'Apellido
Qry = Qry & Text1(3) & "','" 'Cedula
Qry = Qry & Text1(5) & "'" 'Lugar de Expedicion
Qry = Qry & ",#" & Text2 & "#,#" 'Fecha de Nacimiento
Qry = Qry & Text3 & "#,#" 'Fecha de Ingreso
Qry = Qry & Text4 & "#,#" 'Fecha de Retiro
Qry = Qry & Format(Date, "mm/dd/yyyy") & "#)"
cnn.Execute Qry
End Select
rs.Requery 1
Call CargarListView(FrmPrincipal.LV, rs)
DoEvents
Unload Me
Set FrmEdit = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub cmdCancelar_Click()
Unload Me
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
En la parte del UPDATE, en la linea del Where hay un carácter por demás
" 'where Cedula = " & "Text1(3)" & ""
Si cedula es tipo texto lo correcto es >>> " where Cedula = '" & Text1(3) & "'"
Si es tipo numerico =>>> " where Cedula = " & Text1(3) & ""
En la Parte del INSERT, decía que hay que eliminar una linea porque sobra por eso puse como comentario a que campo debería corresponder.
Y da el error porque sobran dos caracteres al final de la primera linea
Qry = "INSERT ..........ha_Traslado_Fondo) VALUES('" & _
" 'where Cedula = " & "Text1(3)" & ""
Si cedula es tipo texto lo correcto es >>> " where Cedula = '" & Text1(3) & "'"
Si es tipo numerico =>>> " where Cedula = " & Text1(3) & ""
En la Parte del INSERT, decía que hay que eliminar una linea porque sobra por eso puse como comentario a que campo debería corresponder.
Y da el error porque sobran dos caracteres al final de la primera linea
Qry = "INSERT ..........ha_Traslado_Fondo) VALUES('" & _
Que pena, nuevamente acudo a usted por otra aclaración, en la parte del INSERT elimine los caracteres que estaban de más y me da el siguiente error Error de Sintaxis en la Fecha en la Expresión de Consulta '##'.
Nuevamente Gracias por prestarme atención tantas veces y disculpa tantos inconvenientes.
Qry = "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('"
Qry = Qry & Text1(1) & "','" 'Nombres
Qry = Qry & Text1(2) & "','" 'Apellidos
Qry = Qry & Text1(3) & "','" 'Cedula
Qry = Qry & Text1(5) & "'" 'Lugar de Expedicion
Qry = Qry & ",#" & Text2 & "#,#" 'Fecha de Nacimiento
Qry = Qry & Text3 & "#,#" 'Fecha de ingreso
Qry = Qry & Text4 & "#,#" 'Fecha Retiro
Qry = Qry & Format(Date, "mm/dd/yyyy") & "#)" 'Fecha de Traslado de fondos
cnn.Execute Qry
Nuevamente Gracias por prestarme atención tantas veces y disculpa tantos inconvenientes.
Qry = "INSERT INTO TB_EMPLEADOS " & "(Nombres,Apellidos,Cedula,Lugar_Exp,Fecha_Nac,Fecha_Ing,Fecha_Ret,Fecha_Traslado_Fondo) VALUES('"
Qry = Qry & Text1(1) & "','" 'Nombres
Qry = Qry & Text1(2) & "','" 'Apellidos
Qry = Qry & Text1(3) & "','" 'Cedula
Qry = Qry & Text1(5) & "'" 'Lugar de Expedicion
Qry = Qry & ",#" & Text2 & "#,#" 'Fecha de Nacimiento
Qry = Qry & Text3 & "#,#" 'Fecha de ingreso
Qry = Qry & Text4 & "#,#" 'Fecha Retiro
Qry = Qry & Format(Date, "mm/dd/yyyy") & "#)" 'Fecha de Traslado de fondos
cnn.Execute Qry
No te preocupes mucho, seria una pena si al final no podemos resolver el problema.
El error que te da es porque el text esta en blanco, tal vez podrías validarloa de la siguiente manera
Qry = Qry & "," & iif(isdate(Text2), "#" & Text2 & "#","Null") 'Fecha de Nacimiento
Qry = Qry & "," & iif(isdate(Text3), "#" & Text3 & "#","Null") 'Fecha de ingreso
Qry = Qry & "," & iif(isdate(Text4), "#" & Text4 & "#","Null") 'Fecha Retiro
Qry = Qry &",#" Format(Date, "mm/dd/yyyy") & "#)" 'Fecha de Traslado de fondos
El error que te da es porque el text esta en blanco, tal vez podrías validarloa de la siguiente manera
Qry = Qry & "," & iif(isdate(Text2), "#" & Text2 & "#","Null") 'Fecha de Nacimiento
Qry = Qry & "," & iif(isdate(Text3), "#" & Text3 & "#","Null") 'Fecha de ingreso
Qry = Qry & "," & iif(isdate(Text4), "#" & Text4 & "#","Null") 'Fecha Retiro
Qry = Qry &",#" Format(Date, "mm/dd/yyyy") & "#)" 'Fecha de Traslado de fondos
Buenas tardes, gracias a su ayuda he podido superar los errores que tenia al actualizar o insertar un nuevo registro, pero la pregunta que tengo, creo que la final, es que al insertar los datos de las fechas se cargan de una forma que no corresponde, es decir, la fecha de nacimiento se carga como la fecha de ingreso, la fecha de ingreso se carga como la fecha de retiro, la fecha de traslado de fondo se carga con la fecha actual que tenga el sistema, la idea es que yo incluyo estos datos a través de un formulario que ya diseñe, por esta razón en la pregunta anterior le solicite que me explicara donde queda la fecha de nacimiento, es decir, el valor que indico en el Text1(4) que me dijo que eliminara por estar demás.
Le explico algo más, en la linea de código de la sentencia UPDATE 'Cedula' es el campo llave de mi base de datos, es un campo nuemrico, y se inserta bien a través de la sentencia INSERT, como ya le entendí lo que me explico sobre el error de que deben haber iguales campos tanto a actualizar como a insertar, necesariamente y para que se den todos los campos a insertar, incluyendo el campo que se encuentra en el text1(4), ¿debo crear otro item que sea la clave principal y relacionarlo en el condición Where o por el contrario puedo relacionar 'Cedula' (Text1(3)) en el la sentencia UPDATE sin ningún problema?.
No se si me explique bien, pero Gracias por su ayuda.
Le explico algo más, en la linea de código de la sentencia UPDATE 'Cedula' es el campo llave de mi base de datos, es un campo nuemrico, y se inserta bien a través de la sentencia INSERT, como ya le entendí lo que me explico sobre el error de que deben haber iguales campos tanto a actualizar como a insertar, necesariamente y para que se den todos los campos a insertar, incluyendo el campo que se encuentra en el text1(4), ¿debo crear otro item que sea la clave principal y relacionarlo en el condición Where o por el contrario puedo relacionar 'Cedula' (Text1(3)) en el la sentencia UPDATE sin ningún problema?.
No se si me explique bien, pero Gracias por su ayuda.
La consulta UPDATE y la INSERT son totalmente independientes, podrías modificar solo un campo y no es necesario poner ..., Cedula=... text1(3)... a no ser que vayas a modificar la clave cosa que no creo que quieras hacer.
Sin mebargo en la consulta INSER tiene dos partes la primera va entre () y ahi indicas los campos donde se realizaran la insercion, y la segunda parte esta los valores VALUES(), el orden enque pones en la primera parte debe corresponder al orden de la segunda parte
por ejemplo esto seria un error
INSERT INTO UNATABLA (Nombre, Fecha_Nac) Values (#01/01/2009#,'Juan')
porque estoy pasando una fecha para un campo tipo texto y paso una texto a una valor fecha, entoces tines que pasar los valores (VALUES) en el Mismo orden en que declaras tus campo, entonces lo correcto seria
INSERT INTO UNATABLA (Nombre, Fecha_Nac) Values ('Juan',#01/01/2009#)
Sin mebargo en la consulta INSER tiene dos partes la primera va entre () y ahi indicas los campos donde se realizaran la insercion, y la segunda parte esta los valores VALUES(), el orden enque pones en la primera parte debe corresponder al orden de la segunda parte
por ejemplo esto seria un error
INSERT INTO UNATABLA (Nombre, Fecha_Nac) Values (#01/01/2009#,'Juan')
porque estoy pasando una fecha para un campo tipo texto y paso una texto a una valor fecha, entoces tines que pasar los valores (VALUES) en el Mismo orden en que declaras tus campo, entonces lo correcto seria
INSERT INTO UNATABLA (Nombre, Fecha_Nac) Values ('Juan',#01/01/2009#)
- Compartir respuesta
- Anónimo
ahora mismo