Visual Basic - 2 consultas SQL

Life is soft - evento anual de software empresarial
   
Vista:

2 consultas SQL

Publicado por Matias (135 intervenciones) el 24/09/2007 07:39:25
hoal chicos tengo 2 dudas
la primera es la siguiente, en teste procedimiento saco los datos de una localidad segun los datos de las provincia y localidad que estan en un dos combos distintos
la consulta esta bien el tema es que en la linea
MaskEdBox1 = rs!codpostal si la reemplazo por maskedbox1 = rs.fields("localidades.codpostal") me dice que no encuentra el nombre ordinal del pedido mientras que si lo dejo asi me trae bien los datos
por que sera???

Private Sub Combo2_Click()
Dim strsql As String
strsql = "select * from localidades, provincia where localidades.nombre='" & Combo2.Text & "' "
strsql = strsql & " and provincia.nombre='" & Combo1.Text & "' "
strswl = strsql & " and provincia.codpro = localidades.codprov"
Set rs = New ADODB.Recordset
rs.ActiveConnection = db
rs.Open (strsql), db, adOpenDynamic, adLockOptimistic

If rs.BOF = True And rs.BOF = True Then
mensaje = "No se encuentra esta localidad"
If MsgBox(mensaje, vbCritical + vbOKOnly, "Error de acceso") = vbOK Then
Exit Sub
End If
End If

MaskEdBox1 = rs!codpostal
Text1 = rs.Fields("localidades.nombre")

End Sub

la otra pegunta es, cuando agrega un nuevo registro a una tabla de access, con ado uso esto

rs.addnew
rs!codigo
rs!nombre
rs.update
rs.requery

deberia usar algo mas? el tema es que el otro dia agregue un registro de esta mnera y cuando consulte por eso registro con otra consulta me dio que
rs.bof = true and rs.eof = true
es decir que no lo encontre
bueno espero su respuesta grcias por todo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:2 consultas SQL

Publicado por Séneca (23 intervenciones) el 24/09/2007 09:34:07
Para la primera pregunta:

La diferencia está en que al campo CodPostal de la tabla localidades no le tienes antepuesto el nombre de la tabla porque no es necesario ya que no hay otro campo con el mismo nombre en la tabla provincia, cosa que sí ocurre con el campo nombre que existe en las dos tablas y tienes que anteponer el nombre de la tabla para identificar cada uno.
Así también funcionaría:

MaskEdBox1 = rs.Fields("codpostal")

Para la segunda:

La propiedad Requery sobra (no es necesaria) para que el registro se grabe físicamente en la tabla debes cerrar el recordset o mover el puntero. Prueba poniendo después del Update
Rs.MoveFirst
y abre otra consulta, verás que aparece el nuevo registro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar