| 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. |
| |
|
|
|