Visual Basic - Pregunta datagrid

Life is soft - evento anual de software empresarial
 
Vista:

Pregunta datagrid

Publicado por Sergio (9 intervenciones) el 21/04/2007 00:49:48
Hola a todos, estoy desarrollando un programa y necesito pasar los resultados de una sentencia sql al datagrid.
Este es el codigo que tengo y no funciona,me visualiza el datagrid en blanco

Dim tabl As ADODB.Recordset

Private Sub BotonConsultar_Click()

Dim SQL As String

SQL = "SELECT * FROM clientes where id=1"

Set tabl = New ADODB.Recordset

Set Datagrid1.DataSource = tabl

End Sub

Me estoy volviendo loco y por mas que busco menos encuentro. Gracias a todos por vuestro interes.Un saludo
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:Pregunta datagrid

Publicado por ivan (1039 intervenciones) el 21/04/2007 02:25:54
claro que el datagrid estará en blanco, te falta abrir el RecordSet TABL y también falta definir y abrir el objeto ADODB.Connection
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

RE:Pregunta datagrid

Publicado por Sergio (9 intervenciones) el 21/04/2007 15:26:10
Si,la conexion la tengo declarada y el recordset tambien en un modulo
Modulo:
Global base As ADODB.Connection
Global tabl As ADODB.Recordset
luego en el boton pongo esto:

Dim SQL As String

SQL = "SELECT * FROM clientes Where id=1"

Set base = New ADODB.Connection
Set tabl = New ADODB.Recordset

Set Dataclientes.DataSource = tabl

End Sub()

y me sigue sin mostrar nada,lo he intentado todo y no funciona. El caso es que con el adodc realizo la conexion y en el datagrid le digo que me lo visualice y me lo muestra pero de esta forma (con el codigo de arriba) me quita los resultados y me lo deja en blanco.
Gracias Ivan por la respuesta.
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

RE:Pregunta datagrid

Publicado por Sergio (9 intervenciones) el 22/04/2007 00:44:32
Vale, lo he remodelato por completo como me habeis dicho y sigue sin funcionar,estoy enloqueciendo no se que mas hacer para que funcione.

Dim base As ADODB.Connection
Dim tabl As ADODB.Recordset

Private Sub Bconsultar_Click()

Set base = New ADODB.Connection
Set tabl = New ADODB.Recordset
base.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Coyanza.mdb;Persist Security Info=False"
base.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Coyanza.mdb;Persist Security Info=False"
tabl.CursorType = adOpenDynamic
tabl.LockType = adLockOptimistic
tabl.Open "clientes", base
On Error GoTo CONTROLERROR

tabl.Find (ComBusqueda.Text & "='" & Tcadbus.Text & "'")
MsgBox (tabl.Fields(0).Value)

'Aqui se supone que paso los resultados o el resultado al datagrid
Set Dataclientes.DataSource = tabl
' se posiciona en el primer registro
tabl.MoveFirst

Dataclientes.Refresh
tabl.Close

Exit Sub
CONTROLERROR:
'MsgBox (Err.Number)
If Err.Number = 3021 Then
MsgBox ("NO EXISTE ESE CODIGO DE GRUPO")
Exit Sub
End If
If Err.Number = 3265 Then
MsgBox ("NO EXISTE ESE CODIGO DE CANTANTE")
Exit Sub
End If
Resume Next

End Sub

Gracias por vuestra ayuda y a ver si me podeis seguir ayudandome a acabar esto.Un saludo y perdonar que sea tan pesado
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

RE:Pregunta datagrid

Publicado por Sergio (9 intervenciones) el 22/04/2007 00:46:38
Ahh, se me olvidaba con el msgbox que tengo encima del set dataclientes... me visualiza el resultado,por lo tanto la busqueda es correcta. Un saludo
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

Todos se empeñan en decir que funciona

Publicado por Benjo (679 intervenciones) el 22/04/2007 01:05:32
Sergio, el motivo por el cual tu Datagrid no muestra datos es muy simple.
No esta enlazado a un Objeto Databinding, le est÷as asignando por codigo un Recordset.
No se porque muchos de nuestros colegas en este Foro insisten en afirmar que a ellos le funciona asignar un Recordset a un Datagrid , pero por el contrario Microsoft en su MSDN expresa claramente que no se puede hacer esto sin crear una clase Databinding.

Enviame un email para pasarte la clase, es muy simple e inclusive podes utilizar su misma conexion para manejar distintos RecodSet, para aprovechar de esta manera la conexion. Maxime si estas utilizando MDE2000.

Haceme casio, no te sigas devanando los sesos. Es imposible asignar un Recodset a un Datagrid.
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

RE:Y algunos se empeñan en decir que NO

Publicado por Sergio (9 intervenciones) el 23/04/2007 14:18:46
Bueno, en primer lugar quiero dar las gracias a todos que os habeis molestado en ayudarme, os lo agradezco muchisimo y MUCHISIMAS GRACIAS QUIQUE!!!!!, gracias a ti las busquedas y LA VISUALIZACION EN UN DATAGRID de mi programa FUNCIONAN!!!!, MUCHAS GRACIAS!!!.
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

Pues no es cierto lo que dices, Benjo?

Publicado por ivan (1039 intervenciones) el 23/04/2007 16:30:13
como la ves, benjo. nos calló el hocico el tocapelotas, ¡shiales!
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