Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

No me enlaza el DataGrid

Estas en el tema de No me enlaza el DataGrid en el foro de Visual Basic clásico en Foros del Web. tengo un DataGrid y quiero cargar los resultados de una consulta con una base de datos SQl la cual esta conectada con un DataEnvironmente, no ...
  #1 (permalink)  
Antiguo 15/03/2005, 07:47
 
Fecha de Ingreso: noviembre-2003
Mensajes: 46
Antigüedad: 20 años, 5 meses
Puntos: 0
No me enlaza el DataGrid

tengo un DataGrid y quiero cargar los resultados de una consulta con una base de datos SQl la cual esta conectada con un DataEnvironmente, no quiero generar un Comando, lo que estoy haciendo son Consultas las cuales cambiares la parte del Where dependiendo de las opciones del Filtro

les paso el codigo

selecnormal:
Dim str As String
Dim STR1 As String
STR1 = "SELECT CodCont, CodCat, NomCategoria, CodRub, NomRubro, Codemp, NomEmpresa, CodProf, Codpues, Nombre, Apellido, COMENTARIOS , Alta, CodUsu, FechaModif, Codusu1 FROM Contacto"
If On1.Value = True Then
If NombreB = "" Then
MsgBox "Ingrese un Nombre"
Exit Sub
Else
str = STR1 + " WHERE (Nombre LIKE '" & NombreB & "%')"
Text.Text = str
GoSub consultar
End If
ElseIf On2.Value = True Then

End If

consultar:
Set Temporal = New ADODB.Recordset
If Temporal.State = 1 Then
Temporal.Close
End If
Temporal.Open str, DE.Agenda
'Set Temporal = DE.Agenda.Execute(str)
a = Temporal.RecordCount
Set DataGrid1.DataSource = DE
DataGrid1.DataMember = "Temporal"
Exit Sub
Return


Como veran trabajo con 2 String el del Select y despues le cambio el Where, el Recordset me tira resultados todo va bien lo unico que no sucede es a la hora de enlazar el resultado del Recordset con el grid ya probe Requery Refresh, DE TODO ¡¡¡¡¡ alguna sugerencia
  #2 (permalink)  
Antiguo 15/03/2005, 08:21
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años
Puntos: 0
DE es un recordset?
  #3 (permalink)  
Antiguo 15/03/2005, 08:36
 
Fecha de Ingreso: noviembre-2003
Mensajes: 46
Antigüedad: 20 años, 5 meses
Puntos: 0
DE es el DataEnvironment, pero ya lo solucione con un AdoDc



Private Sub buscar_Click() 'SOLO POR EL Y DEL NOMBRE

GoSub selecnormal
Exit Sub

selecnormal:
Dim str As String
Dim STR1 As String
STR1 = "SELECT CodCont, CodCat, NomCategoria, CodRub, NomRubro, Codemp, NomEmpresa, CodProf, Codpues, Nombre, Apellido, COMENTARIOS , Alta, CodUsu, FechaModif, Codusu1 FROM Contacto"
If On1.Value = True Then
If NombreB = "" Then
MsgBox "Ingrese un Nombre"
Exit Sub
Else
str = STR1 + " WHERE (Nombre LIKE '" & NombreB & "%')"
Text.Text = str
GoSub consultar
End If
ElseIf On2.Value = True Then

End If

consultar:
Set Temporal = New ADODB.Recordset
If Temporal.State = 1 Then
Temporal.Close
End If
Temporal.Open str, DE.Agenda 'esto lo hago para ver nomas que me devuelve
a = Temporal.RecordCount 'si me devuelve algo ok despues borrare estas 2 lineas
Ado1.CommandType = adCmdText
Ado1.RecordSource = str
Ado1.Refresh
Set DataGrid1.DataSource = Ado1
Exit Sub
Return
End Sub


pero si me sugeris alguna otra forma sin el adodc mejor porque tendria que funcionar solo con el Datagrid sin ningun control mas, pero asi me anduvo no se si habria algo mejor
  #4 (permalink)  
Antiguo 15/03/2005, 08:41
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años
Puntos: 0
Lo puedes enlazar a un Recordset en el datasource, haces tu select lo mandas aun recorset y este se lo asignas al datagrid
  #5 (permalink)  
Antiguo 15/03/2005, 09:07
 
Fecha de Ingreso: noviembre-2003
Mensajes: 46
Antigüedad: 20 años, 5 meses
Puntos: 0
eso fue lo que intente en la primera que mande arriba, con un recorset lo asigno como datamember en el Datagrid y no andubo
  #6 (permalink)  
Antiguo 15/03/2005, 09:17
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años
Puntos: 0
Pon

Set DataGrid1.DataSource = Temporal

y no cierres el recordset
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.