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

Problemas con DAtagrid

Estas en el tema de Problemas con DAtagrid en el foro de Visual Basic clásico en Foros del Web. Saludos coordiales Tengo un problema con un Datagrid Les doy la idea.. En un formulario estoy creando la factura tengo un datagrid que lo e ...
  #1 (permalink)  
Antiguo 04/06/2011, 12:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 15 años, 6 meses
Puntos: 1
Pregunta Problemas con DAtagrid

Saludos coordiales
Tengo un problema con un Datagrid

Les doy la idea..
En un formulario estoy creando la factura
tengo un datagrid que lo e enlazado mediante ado y cargo la tabla detalle todo funciona bien..
el problema biene en el data grid que tengo programado esto en el evento keypress(Leer mas abajo)
Ingreso el codigo del articulo en una columna del datagrid cuando doy enter busca el codigo correcto carga los demas datos a las demas columnas
cuando es incorrecto aparece un mensaje "No existe Articulo" ahi va todo bien
Ahora cuando ingreso primero el codigo del articulo incorrecto me aprece el mensaje y cuando ingreso el codigo del articulo correcto primero me aparece el mensaje y tengo que dar otro enter para que se me carguen los datos

Me pueden dar una idea de como resolver este problema.

De antemano gracias


If KeyAscii = 13 Then

Dim col As Integer
Dim sql As String
col = Me.DataGrid2.col
If col = "2" Then
On Error Resume Next
Dim rs As New Recordset
sql = "SELECT * FROM articulos WHERE codigo ='" & (Me.DataGrid2.Columns(2).Text) & "' "
rs.Open sql, Cconexion, adOpenForwardOnly, adLockReadOnly
If rs.EOF Then
MsgBox ("No existe articulo")
Me.DataGrid2.Columns(2).Text = ""
rs.Close
Else
"Con esto cargo los datos al data grid"
Tabla.Open "select articulos.nombre,articulos.costoproveedor,unidades .nombre from articulos,unidades where articulos.Codunidad = unidades.codigo and articulos.codigo= '" & Me.DataGrid2.Columns(2).Text & "'", Cconexion, adOpenDynamic, adLockOptimistic
Me.DataGrid2.Columns(3).Text = Tabla.Fields("articulos.Nombre")
Me.DataGrid2.Columns(4).Text = Tabla.Fields("unidades.nombre")
Me.DataGrid2.Columns(6).Text = Tabla.Fields("CostoProveedor")
Tabla.Close
End If
End If
End If
  #2 (permalink)  
Antiguo 07/06/2011, 09:10
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Problemas con DAtagrid

Hola!!
Cambia estas lineas:
Código vb:
Ver original
  1. ...
  2. ...
  3. rs.Open sql, Cconexion, adOpenForwardOnly, adLockReadOnly
  4. If rs.EOF Then
  5. ...
  6. ...

Por:
Código vb:
Ver original
  1. ...
  2. ...
  3. rs.Open sql, Cconexion, adOpenDynamic, adLockReadOnly
  4. If rs.EOF =True Then
  5. ...
  6. ...

Como tienes "adOpenForwardOnly" la lectura solo es hacia adelante, por lo que al poner un codigo erroneo, el cursor se queda al final del recordset; asi cuando pones el codigo correcto, no lo va a encontrar por que el cursor esta al final y de seguro que el codigo que buscas está al principio o en el medio.

En cambio, "adOpenDynamic" la lectura es hacia adelante y hacia atras, lo que tiene que resolver el problema.

Justo como haces en:
Código vb:
Ver original
  1. ...
  2. ...
  3. Tabla.Open "select .....where ...articulos.codigo= '"
  4. & Me.DataGrid2.Columns(2).Text & "'",
  5. Cconexion, adOpenDynamic, adLockOptimistic
  6. ...
  7. ...


Verifica y nos cuentas!!

Última edición por lokoman; 07/06/2011 a las 09:17
  #3 (permalink)  
Antiguo 10/06/2011, 11:43
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Problemas con DAtagrid

E estado intentando de otras formas pero nada con ese control..
Ahora estoy utilizando el dbgrid y datcontrol y funciona lo e hecho mediante las propiedades la conexion..
Ahora lo estoy haciendo mediante programacion y hago esto
Me.Data1.DatabaseName = "C:\Sistema\BD\Base97.mdb"
Me.Data1.RecordSource = "select * from Articulos"

Me.Data1.Refresh
y me sala aqui un error se requiere un objeto
Set Me.DBGrid1.DataSource = Data1

Etiquetas: datagrid
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 04:35.