DUDA URGENTE PLEASE COLEGA
HOLA COLEGA, EN ESTA OPORTUNIDAD TENGO UNA GRAN DUDA. COMENZARE POR EL PLANEAMIENTO DE MI PROBLEMATICA. POSEO UNA BASE DE DATOS EN ACCESS LA CUAL TIENE DOS TABLAS, UNA QUE ES LLAMADA "Rangos" Y OTRA "Personas".
La tabla rangos contiene los siguientes campos: rango1, rango2, estado, donde por ejemplo:
rango1 rango2 estado
1 5 miranda
6 10 vargas
y la tabla personas posee los siguientes campos: cedula, apellido, nombre. El número de cedula es el mismo valor que el de la tabla rango en rango1 y rango2.
Mi problema radica en que por ejemplo necesito saber como puedo lograr en que el usuario al introducir la cedula que por ejemplo sea 12, automaticamente me haga la comparación de acuerdo a la tabla rango y como puse en el ejemplo anterior:
rango1 rango2 estado
6 10 vargas
la cedula 12 no existiria en el data por lo tanto me mostraria un mensaje de error. Pero en el caso de que la cedula sea por ejemplo 8 me permitira seguir con los procedimientos.
Agradezco de tu ayuda colega, la programación la estoy realizando en DAO.. Gracias de antemano amigo.
La tabla rangos contiene los siguientes campos: rango1, rango2, estado, donde por ejemplo:
rango1 rango2 estado
1 5 miranda
6 10 vargas
y la tabla personas posee los siguientes campos: cedula, apellido, nombre. El número de cedula es el mismo valor que el de la tabla rango en rango1 y rango2.
Mi problema radica en que por ejemplo necesito saber como puedo lograr en que el usuario al introducir la cedula que por ejemplo sea 12, automaticamente me haga la comparación de acuerdo a la tabla rango y como puse en el ejemplo anterior:
rango1 rango2 estado
6 10 vargas
la cedula 12 no existiria en el data por lo tanto me mostraria un mensaje de error. Pero en el caso de que la cedula sea por ejemplo 8 me permitira seguir con los procedimientos.
Agradezco de tu ayuda colega, la programación la estoy realizando en DAO.. Gracias de antemano amigo.
Entiendo que lo que deseas saber es que Estado pertenece un Cedula determinada, si es así la respuesta la encuentras en la Clausula Between de SQL, prueba de este modo:
"SELECT * FROM Rangos WHERE '" & miCedula & "' BetWeen Rango1 And Rango2"
También puedes concatenar ambas tablas para obtener todos los datos en de un Persona además del Estado en la misma SQL:
"SELECT * FROM Rangos, Personas WHERE Cedula BetWeen Rango1, Rango2 AND Cedula = '" & miCedula & "'
Saludos!!
l_island
"SELECT * FROM Rangos WHERE '" & miCedula & "' BetWeen Rango1 And Rango2"
También puedes concatenar ambas tablas para obtener todos los datos en de un Persona además del Estado en la misma SQL:
"SELECT * FROM Rangos, Personas WHERE Cedula BetWeen Rango1, Rango2 AND Cedula = '" & miCedula & "'
Saludos!!
l_island
HOLA COLEGA, GRACIAS POR TU AYUDA. PERO AHORA TENGO OTRA DUDA MAS EN CUANTO A ESTO, SABES QUE TENGO EL SIGUIENTE CODIGO EL CUAL LO HICE EN EL EVENTO KEYPRESS DEL TXTCEDULA.
If TXTcedula1.MaxLength = Len(TXTcedula1.Text) Or TXTcedula1.MaxLength = 7 Then
CEDORI.Seek "=", TXTcedula1.Text
If CEDORI.NoMatch = True Then
MKBlote.SetFocus
Else
Varmsg1 = MsgBox("Cédula de Identidad ya Existe en la Base de Datos", vbCritical, "Atención")
TXTcedula1.Text = ""
limpiar
Bloquear
TXTnacionalidad = ""
TXTnacionalidad.SetFocus
Exit Sub
End If
llenar
TXTart = Articulo
TXTord = Ordinal
End If
Ahora es que tengo la duda en que parte de este codigo y como tendria que colocar la instrucción que me distes ya que como lo que engo que hacer es una verificación, me imagino que tendria que ser despues de CEDORI.Seek "=", TXTcedula1.Text. Pero como haria en este caso.. Gracias de antemano amigo
If TXTcedula1.MaxLength = Len(TXTcedula1.Text) Or TXTcedula1.MaxLength = 7 Then
CEDORI.Seek "=", TXTcedula1.Text
If CEDORI.NoMatch = True Then
MKBlote.SetFocus
Else
Varmsg1 = MsgBox("Cédula de Identidad ya Existe en la Base de Datos", vbCritical, "Atención")
TXTcedula1.Text = ""
limpiar
Bloquear
TXTnacionalidad = ""
TXTnacionalidad.SetFocus
Exit Sub
End If
llenar
TXTart = Articulo
TXTord = Ordinal
End If
Ahora es que tengo la duda en que parte de este codigo y como tendria que colocar la instrucción que me distes ya que como lo que engo que hacer es una verificación, me imagino que tendria que ser despues de CEDORI.Seek "=", TXTcedula1.Text. Pero como haria en este caso.. Gracias de antemano amigo
No me gusta dar consejos, pero en este caso haré una exeptión: OLVIDA ESO DEL SEEK.
Seek es una instrucción de DAO, te obliga a tener abierta toda la tabla y establecer un Index con el único propósito de obtener un registro o un conjunto relativamente pequeño de ellos. Pero en fin eso lo dejo a tu elección.
En cuanto a donde debes ponerlo:
If TXTcedula1.MaxLength = Len(TXTcedula1.Text) Or TXTcedula1.MaxLength = 7 Then
CEDORI.Seek "=", TXTcedula1.Text
If CEDORI.NoMatch = True Then
MKBlote.SetFocus
Else
Varmsg1 = MsgBox("Cédula de Identidad ya Existe en la Base de Datos", vbCritical, "Atención")
TXTcedula1.Text = ""
limpiar
Bloquear
TXTnacionalidad = ""
TXTnacionalidad.SetFocus
Exit Sub
End If
SET Rangos = Basedatos.OpenRecordset("SELECT Estado FROM Rangos WHERE '" & TXTcedula1.Text & "' Between Rango1 And Rango2")
if rangos.recordcount <> 0 then txtEstado.text = Rangos("Estado") ELSE txtEstado = ""
Rangos.close
Set Rangos = nothing
llenar
TXTart = Articulo
TXTord = Ordinal
End If
Espero no haberme equivocado.
Saludos!!
l_island
Seek es una instrucción de DAO, te obliga a tener abierta toda la tabla y establecer un Index con el único propósito de obtener un registro o un conjunto relativamente pequeño de ellos. Pero en fin eso lo dejo a tu elección.
En cuanto a donde debes ponerlo:
If TXTcedula1.MaxLength = Len(TXTcedula1.Text) Or TXTcedula1.MaxLength = 7 Then
CEDORI.Seek "=", TXTcedula1.Text
If CEDORI.NoMatch = True Then
MKBlote.SetFocus
Else
Varmsg1 = MsgBox("Cédula de Identidad ya Existe en la Base de Datos", vbCritical, "Atención")
TXTcedula1.Text = ""
limpiar
Bloquear
TXTnacionalidad = ""
TXTnacionalidad.SetFocus
Exit Sub
End If
SET Rangos = Basedatos.OpenRecordset("SELECT Estado FROM Rangos WHERE '" & TXTcedula1.Text & "' Between Rango1 And Rango2")
if rangos.recordcount <> 0 then txtEstado.text = Rangos("Estado") ELSE txtEstado = ""
Rangos.close
Set Rangos = nothing
llenar
TXTart = Articulo
TXTord = Ordinal
End If
Espero no haberme equivocado.
Saludos!!
l_island