** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - No coinciden los tipos de datos en la expresion
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoNo coinciden los tipos de datos en la expresion

 Responder Responder
Autor
Mensaje
raime20 Ver desplegable
Nuevo
Nuevo


Unido: 02/Julio/2025
Localización: Cuba
Estado: Sin conexión
Puntos: 4
Enlace directo a este mensaje Tema: No coinciden los tipos de datos en la expresion
    Enviado: 02/Julio/2025 a las 18:35
Hola, tengo un problema, estoy realizando una base de datos en access y cuando intento mostrar una información que selecciono en un listbox para un formulario me sale el error de "No coinciden los tipos de datos en la expresión de criterios"

aqui les paso el código de vba para realizar el proceso

Option Compare Database
Option Explicit

Private Sub lstAlumnos_Click()
    Call recuperaRegistro
End Sub

Private Sub btnGuardar_Click()
    Call guardarRegistro
End Sub

Private Sub txtBusqueda_GotFocus()
    Call limpiaRegistro
End Sub

Private Sub txtBusqueda_Change()
    Dim Consulta As String
    
    On Error GoTo ManipulaError
    Consulta = "SELECT Fecha, Producto"
    Consulta = Consulta & " FROM Entrada"
    Consulta = Consulta & " WHERE Fecha Like '*" & Replace(Me.txtBusqueda.Text, "'", "''") & "*'"
    Me.lstAlumnos.RowSource = Consulta
    Exit Sub
    
ManipulaError:
    MsgBox Err.Description, vbCritical, "Atencion"
End Sub

Private Sub recuperaRegistro()
    Dim rst As DAO.Recordset, SQL As String
    
    On Error GoTo ManipulaError
    SQL = "SELECT * FROM Entrada WHERE Fecha = '" & Me.lstAlumnos & "'"
    Set rst = CurrentDb.OpenRecordset(SQL, dbOpenForwardOnly)
    With rst
        Me.Fecha = !Fecha
        Me.Producto = !Producto
        Me.Cantidad = !Cantidad
        Me.Id = !Id
    End With
    rst.Close: Set rst = Nothing
    Exit Sub
    
ManipulaError:
    If Not rst Is Nothing Then rst.Close: Set rst = Nothing
    MsgBox Err.Description, vbCritical, "Atencion"
End Sub

Private Sub guardarRegistro()
    Dim Ctrl As Variant
    
    On Error GoTo ManipulaError
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is TextBox Then
            If Ctrl.Name <> "txtBusqueda" Then
                If IsNull(Ctrl.Value) Then MsgBox "FALTAN CAMPOS DE LLENAR", vbExclamation, "Atencion": Exit Sub
            End If
        End If
    Next Ctrl
    CurrentDb.Execute "UPDATE Entrada SET Cantidad = '" & Replace(Me.Cantidad, "'", "''") & "' " _
                      & "WHERE Id = '" & Me.Id & "'", dbFailOnError
                     MsgBox "REGISTRO GUARDADO CON EXITO", vbInformation, "Atencion"
    Me.lstAlumnos.Requery
    Exit Sub
    
ManipulaError:
    MsgBox Err.Description, vbCritical, "Atencion"
End Sub

Private Sub limpiaRegistro()
    Dim Ctrl As Variant
    
    On Error GoTo ManipulaError
    Me.lstAlumnos = Null
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is TextBox Then
            If Ctrl.Name <> "txtBusqueda" Then Ctrl.Value = Null
        End If
    Next Ctrl
    Exit Sub
    
ManipulaError:
    MsgBox Err.Description, vbCritical, "Atencion"
End Sub



Editado por raime20 - 02/Julio/2025 a las 18:40
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 02/Julio/2025 a las 19:01
Jugando a adivinar, ... ¿el error te salta aquí?

SQL = "SELECT * FROM Entrada WHERE Fecha = '" & Me.lstAlumnos & "'"

para otra vez (o para esta si he fallado en la adivinanza) pon la línea que te salta el error.

Suponiendo que el campo Fecha sea una fecha, está mal formateado el campo, lo has pasado como si fuera un string (entre comillas simples) y hay que pasarlo entre almohadillas y en formato yanqui mm/dd/yyyy.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
raime20 Ver desplegable
Nuevo
Nuevo


Unido: 02/Julio/2025
Localización: Cuba
Estado: Sin conexión
Puntos: 4
Enlace directo a este mensaje Enviado: 02/Julio/2025 a las 19:56
Publicado originalmente por Mihura Mihura escribió:

Jugando a adivinar, ... ¿el error te salta aquí?

SQL = "SELECT * FROM Entrada WHERE Fecha = '" & Me.lstAlumnos & "'"

para otra vez (o para esta si he fallado en la adivinanza) pon la línea que te salta el error.

Suponiendo que el campo Fecha sea una fecha, está mal formateado el campo, lo has pasado como si fuera un string (entre comillas simples) y hay que pasarlo entre almohadillas y en formato yanqui mm/dd/yyyy.



Muchas gracias, ya, era eso Thumbs Up
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable