El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario Una duda sobre el Control Data...
dr_vasquez
7 Mensaje(s)
Enviado - 3/12/2004
 
Puedo crear una base de datos y conectarla al control DATA en un programa en VB 6 , mi pregunta es:
Puedo volver invisible el control y mover los datos con un boton de comando y agregar datos con otro boton de comando?
Puedo mostrar los datos de una tabla de dicha base de datos y mostrarlos en un listview ?
Gracias por la respuesta..
Carlos
 
nostromo
475 Mensaje(s)
Enviado - 4/12/2004
 
Hola;

Puedes crear una base de datos, las tablas, introducir datos, modificar , actualizar, borrar(daots, tablas, etc). Mediante instrucciones SQL, es más simple y ordenado al momento de mantener el código.

El uso de los datas emplealos solamente con grillas, rellenar combos, listbox, etc.

La propiedad que hace invisible al control data es visible = false, en el ventana de propiedades del control data1.

Ejemplo :

Para los códigos acostumbrate de utilizar los módulos .bas, de esta manera las aplicaciones se cargan rápido.

Observación :

En los módulos respectivos atención de colocar lo siguiente:

Option Explicit
Dim db As Database
Dim rs As Recordset
Dim ac As String
Dim ??? As ??????, etc....

1- Crear la base de datos y una tabla (modCrearBase.bas);

Sub CreateFileBD()
On Local Error GoTo ErrCreateFile
'Crear Base de Datos
a = "C:\ParkingLtda\Registro\" & frmArchivos.lblFile & ".mdb"
'1 Creando Base de Datos
Set db = CreateDatabase(a, dbLangSpanish)
'1.1. Tabla REGCLIENTE
Set td = db.CreateTableDef("REG_CLIENTE")
'Campos Tabla REGCLIENTE
Set fl = td.CreateField("IDCLIENTE", dbInteger)
td.Fields.Append fl
Set fl = td.CreateField("NOMBRE", dbText, 20)
td.Fields.Append fl
Set fl = td.CreateField("PATERNO", dbText, 20)
td.Fields.Append fl
Set fl = td.CreateField("MATERNO", dbText, 20)
td.Fields.Append fl
Set fl = td.CreateField("VEHICULO", dbText, 20)
td.Fields.Append fl
Set fl = td.CreateField("PATENTE", dbText, 6)
td.Fields.Append fl
Set fl = td.CreateField("TARIFA", dbInteger)
td.Fields.Append fl
db.TableDefs.Append td
db.Close
Exit Sub
ErrCreateFile:
MsgBox Err.Number
End Sub

2- Insertar valores a la tabla (modInsertar.bas);

'Introducir registros de los clientes
' Tabla REG_CLIENTE
'IDCLIENTE NOMBRE PATERNO MATERNO VEHICULO PATENTE TARIFA
Sub InsertReg_Cliente()
With MDIPrincipal
a = .txtUsoCarpe & "\" & .lblArchivo
With frmRegistro
patente = .txtPatente_1 & .txtPatente_2
Set db = OpenDatabase(a)
db.Execute "INSERT INTO REG_CLIENTE (IDCLIENTE,NOMBRE,PATERNO,MATERNO,VEHICULO,PATENTE,TARIFA) VALUES (" & .lblIDCliente & ",'" & .txtNombre & "','" & .txtPaterno & "','" & .txtMaterno & "','" & .cboAuto.Text & "','" & patente & "'," & .txtTarifa & ")"
db.Close
End With
Set db = Nothing 'Liberar memoria
End With
End Sub

3- Actualizar los datos introducidos en un listbox (modInsertar.bas);

'Actualizar listado de id
Sub UpdateIDCliente()
With MDIPrincipal
.lstListado.Clear
.lstListado.AddItem "Listado ID Clientes :"
.lstListado.AddItem ""
a = .txtUsoCarpe & "\" & .lblArchivo
Set db = OpenDatabase(a)
Set rs = db.OpenRecordset("Select Count(IDCLIENTE) From REG_CLIENTE")
If rs.Fields(0) > 0 Then
Set rs = db.OpenRecordset("SELECT IDCLIENTE FROM REG_CLIENTE")
rs.MoveFirst
Do While Not rs.EOF
'cboDatos.AddItem rs!NOMBRE
.lstListado.AddItem rs!IDCLIENTE
rs.MoveNext
Loop
End If
rs.Close
db.Close
.Data1.DatabaseName = a
End With
End Sub

En este listbox en DataSource debes colocar Data1, y nada más.

4- Llenar una grilla(msflexgrid), este es del menú, en la aplicación principal que es un MDI:

Private Sub mnuCon_IDCliente_Click()
With FrmConsulta
With MDIPrincipal
a = .txtUsoCarpe & "\" & .lblArchivo
End With
.Data2.DatabaseName = a
.Data2.RecordSource = varcon(1)
.Data2.Refresh

End With
End Sub

La grilla se encuentra en otro form, al llamarlo activa el menú del MDI, varcon(1) es una functio en un módulo .bas (modConsulta.bas):

Public Function varcon(ByVal opcion As Integer) As String
Select Case opcion
Case 1
ac = ("Select IDCLIENTE,FECHA,HORA_ENTRADA,HORA_SALIDA,TOTAL_HORA,TARIFA,PAGO_TOTAL From COBRO_CLIENTE where IDCLIENTE=" & MDIPrincipal.lstListado.Text)
Case 2
ac = ("Select IDCLIENTE,FECHA,HORA_ENTRADA,HORA_SALIDA,TOTAL_HORA,TARIFA,PAGO_TOTAL From COBRO_CLIENTE")
Case 3
ac = ("Select PATENTE,VEHICULO,FECHA,HORA_ENTRADA,HORA_SALIDA,TOTAL_HORA,TARIFA,PAGO_TOTAL From NO_CLIENTE")
End Select
varcon = ac
End Function

Lo anterior lo debes cambiar por la tabla creada al principio, pero, es para darte una idea de como lo debes hacer, ahora, depende de tí terminar y mejorar lo que te envie.

Si continuas con dudas postea.

Nos vemos.
 
 

 

Contactos myStudio Network