Ingresar Códigos Alfanuméricos Access / VB

Quiero consultarles ya que tengo el siguiente código donde el usuario ingresa un código numérico y se ejecuta perfectamente pero resulta que es necesario Ingresar ahora códigos Alfanuméricos pero me da error de ejecución y de criterios, ya cambie todas las tablas donde había conflicto e incluso los txt y comboBox de los formularios pero sigo sin poder ejecutar el código. ¿Tienen una idea que puede estar pasando?

Private Sub cmbCodParada_LostFocus()

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strCriteria As String
Dim strCriteria_1 As String

If Me!Maquina = "" Then
MsgBox "Debe seleccionar la Maquina"
Maquina.SetFocus
Else
If Me!cmbCodParada < 999999 Then
strCriteria_1 = "Select * from Codigos where Maquina =" & "'" & Me!Maquina & "'" & ";"
strCriteria = "[Causa de perdidas] = " & Me!cmbCodParada
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strCriteria_1, dbOpenDynaset)
rst.FindFirst (strCriteria)
If rst.NoMatch Then
MsgBox "El CÓDIGO DE PARARADA INGRESADO es INEXISTENTE, intente nuevamente."
cmbCodParada.SetFocus
cmbCodParada.Value = 0
Else: txtTiempo.SetFocus
rst.Close
Set rst = Nothing
Set dbs = Nothing
End If
Else
strCriteria_1 = "Select * from maquinas_con_velocidad_x_material where Maquina =" & "'" & Me!Maquina & "'" & ";"
strCriteria = "[Material] = " & Me!cmbCodParada
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strCriteria_1, dbOpenDynaset)

3004020 rst.FindFirst (strCriteria)
If rst.NoMatch Then
MsgBox "El CÓDIGO DE MATERIAL ingresado es INEXISTENTE, intente nuevamente."
cmbCodParada.SetFocus
cmbCodParada.Value = 0
Else: txtTiempo.SetFocus
rst.Close
Set rst = Nothing
Set dbs = Nothing
End If
End If

End If

End Sub

1 Respuesta

Respuesta
2

Teo, te juro que me he perdido. Si lo que quieres es

1º Comprobar que un código "escrito" en un combo existe en la tabla, basta con poner en el evento Antes de actualizar de ese combo

If dcount("*","nombre de la tabla","codigo='" & me.nombredelcombo & "'")>=1 then

lo que quieres que haga

else

msgbox"Va a ser que no, ese código no existe",vbokonly,"Piensa otra cosa, listo"

docmd.cancelevent

end if

Si lo que quieres es que al elegir un valor en un combo, te actúe de "filtro", basta con poner en el evento Después de actualizar de ese combo

me.recordsource="select * from nombretabla where codigo='" & me.nombrecombo & "'"

Lo que has puesto

" & "'" & Me!Maquina & "'" & " La verdad no se que significa

Si un criterio es numérico es

=" & me.nombrecontrol & ""

Si es texto(lo que llamas alfanumérico)

='" & me.nombrecontrol & "'"

Si es fecha

=#" & me.nombrecontrol & "#"

¡Gracias! Me sirvió cambiando el consejo del texto alfanumérico y disculpa que no me hice entender con la pregunta, la hice más difícil de lo que era.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas