URGENTE PLEASE!!SQL y TEXTBOX

Edgar
07 de Agosto del 2004
Hola colega, tengo una gran duda ya que necesito reflejar en un textbox lo que me realize una instruccion SQL.. He codificado de la siguiente manera:

SQL = "select des_estado from geografico where cod_estado = " & TXTcod_estado.Text & ""
txtdes_estado = SQL =S es aqui donde no se que hacer

He estado muy preocupado en esto y he intentado varias formas ya que poseeo una data donde en tabla1 tengo el campo de [centro], [estado], [municipio] (todos numericos) y en tabla 2 tengo [cod_estado], [cod_municipio], [des_estado],[des_municipio] (todos numericos tambien) y lo que necesito que realize es que cuando introduzca el [cod_centro] el me determine que codigo de [estado] posee y que codigo de [municipio] y luego lo va a comparar con la tabla 2 con los campos [cod_estado] y [cod_municipio] mostrando asi el resultado que seria [des_estado], [des_municipio], pero que coincida con todo el registro.

He codificado de la siguiente manera:

centro.Seek "=", TXTcod_centro.Text
If centro.NoMatch Then
varmsg1 = MsgBox("Código del Centro No encontrado", vbCritical, "Atención")
TXTcod_centro.Text = ""
TXTcod_centro.SetFocus
Exit Sub
End If
TXTcod_estado = centro.Fields("Estado1")
TXTcod_municipio = centro.Fields("Municipio1")
TXTcod_parroquia = centro.Fields("Parroquia1")
If TXTcod_estado.Text <> "" Then
geogra.MoveFirst
Do While Not geogra.EOF
If TXTcod_estado <> geogra!cod_estado And TXTcod_municipio <> geogra!cod_municipio Then
geogra.MoveNext
Else
TXTdes_estado = geogra.Fields("Des_estado")
TXTdes_municipio = geogra.Fields("Des_municipio")
Exit Do
End If
Loop
End If

Pero tampoco me funciona, nada mas me muestra el des_estado pero no me realize lo demas, como que si no lo encontrara ni lo comparara. Por eso estoy en la duda si realizarlo en sql o si tenga algun problema con mi codigo.. Agradezco de tu ayuda colega

jz
07 de Agosto del 2004
Lo mejor es que hagas otra busqueda seek en geogra pero utilizando como clave tanto el estado como el municipo ,luego pones geogra.seek "=",val(txtestado),val(txtmunicipio)
nota los val que puedes incorporar tambien a tu código ya que estas comparando un valor numerico con otro string (en tu código digo) seguro que es por eso que no va.
SALU2.

Edgar
07 de Agosto del 2004
Pero no puedo declarar dos indices al mismo tiempo en el procedimiento porque no me da resultados. Por ejemplo declarandolo asi:
elec . index = " Cod_estado"
geogra . index = " Cod_municipio "

Aqui tengo una mejor explicacion del problema principal:


TABLA1

Centro Estado Municipio
120 13 1
100 12 3

TABLA2
Cod_estado Cod_municipio Des_estado Des_municipio
13 0 C
13 1 A B

Vamos a suponer estas dos tabla verdad, bueno resulta que yo realizo la consulta por el centro, suponiendo que fue 120 como en el ejemplo, la idea es que me busque en la tabla2 comparando los codigos, comparando el 13 de estado de tabla1 con el 13 de cod_estado de tabla pero al mismo tiempo tambien comparando el 1 de municipio de tabla1 con el 1 de cod_municipio de tabla2 mostrando asi el resulta que seria des_estado = A y des_municipio = B y no me salga el error que sea nulo el campo porque me muestra ese error pero es porque existe algunos campos de des_municipio que estan en blanco pero eso pasa porque no me esta haciendo la comparacion de los codigos del municipio simultaneamente con los del estado.. Agradezco de tu ayuda con toda esta explicacion amigo

jz
07 de Agosto del 2004
lo que te decía es lo siguiente:

primero haces la consulta en elec y pasas los dos campos que te interesa a variables codestado y codmunicipo

luego:
geogra.index="Cod_estado"
geogra.seek "=",codestado,codmunicipio

y siempre coincidiendo los tipos de los campos y las variables

A ver si va

SALU2

semperfimxl
07 de Agosto del 2004
Lo que pasa es que tu codigo es incorrecto a la hora de comparar estado y municipio...

Estas preguntando si AMBOS (estado y municipio) son diferentes de los txt's entonces muevete al sig registro; si no resultan diferentes AMBOS, entonces se te va el procedimiento por el ELSE a cargar las descripciones y eso te genera el error de campo NULO...

Cualquiera de las siguientes tres opciones arregla tu problema:

1) Preguntar si ALGUNO de los campos ES DIFERENTE (usa el OR en lugar del AND)...

If TXTcod_estado <> geogra!cod_estado OR TXTcod_municipio <> geogra!cod_municipio Then
...MoveNext
else
...


2) Preguntar si AMBOS campos NO SON IGUALES a los txt's - usar el NOT y parentesis para encerrar toda la pregunta restante -...

If NOT (TXTcod_estado = geogra!cod_estado And TXTcod_municipio = geogra!cod_municipio) Then
...MoveNext
else
...

3) Preguntar SI AMBOS campos SON IGUALES a los TXT's (lo que cambia un poco tu codigo restante...)

If TXTcod_estado = geogra!cod_estado And TXTcod_municipio = geogra!cod_municipio Then

TXTdes_estado = geogra.Fields("Des_estado")
TXTdes_municipio = geogra.Fields("Des_municipio")
Exit Do

Else
geogra.MoveNext

End If