• Viernes 15 de Noviembre de 2024, 06:24

Autor Tema:  Re: Base indexada directo a Excel. Help me!!!  (Leído 2527 veces)

Tenchi

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Base indexada directo a Excel. Help me!!!
« en: Jueves 30 de Mayo de 2002, 18:06 »
0
Hola. Tengo un problema con el indexado de una base de datos y quisiera saber: ¿Cómo indexo una tabla de una base hecha en Access? Es lo único que me falta para terminar el sistema, el cual he de entregar hoy, ademas he de tirar los resultados del indexado a una planilla de Excel. por favor ayúdenme.

De antemano muchas gracias


Pd. He añadido el procedimiento donde he de destacado entre "X" el problema
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Nelson Toro

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Base indexada directo a Excel. Help me!!!
« Respuesta #1 en: Jueves 26 de Septiembre de 2002, 05:22 »
0
Primero tienes que abrir la ventana de Referencias (esta en herramientas en barra de herramientas tabla excel), luego activas dando click en cuadro blanco a extrema derecha del titulo de "Microsoft DAO 3.6 object library"  (advertencia creo que puedes utilizar tambien ADO ). Esto te permite utilizar las instrucciones de DAO las cuales utilizo en el ejemplo que te voy a dar:
 1. Crea un módulo y escribe las siguientes instrucciones:
   Public Basedatos As Database
   Public Registros As Recordset

 Donde basedatos es el nombre de tu base datos interna (en tu programa)
 2. para abrir la base de datos las siguientes instrucciones:
  Set Basedatos = OpenDatabase("c:VBABasedatosiuspo.mdb")

3.  Para accesar una tabla debes ejecutar las siguientes instrucciones:

  Set Registros = Basedatos.OpenRecordset("alumno", dbOpenSnapshot)

4. para actualizar la BD:

  Sub guarda()
   
    Registros("cedula") = txtCedula.Text
    Registros("nombre") = txtNombre.Text
    Registros("apellido") = txtApellido.Text
    Registros("direccion") =   txtDireccion.Text
    Registros.Update
    Exit Sub
End Sub

 Aquí "nombre" es un campo de una tabla de la base de datos. y txtNombre es un textbox pero puede ser una variable.

Function Busca(Cedula As Long) As Integer

Registros.FindFirst "cedula = " & Cedula
If Registros.NoMatch Then
    Busca = 0
Else
    Busca = 1
End If
End Function

 Con esta función busca un determinado registro en una tabla de la base de datos por el campo cédula. Esto para el caso de modificar y eliminar por que los registros deben existir.

Sub cargarecordseT1()
Set Registros = Basedatos.OpenRecordset("alumno", dbOpenTable)
End Sub

Sub cargaREcordset()
Set Registros = Basedatos.OpenRecordset("alumno", dbOpenSnapshot)
End Sub

'Fíjate en las diferencias de estas dos rutinas consulta  la ayuda VB DAO.

 Private Sub cmdElimina_Click()
On Error GoTo Mensaje:
cargaREcordset
If Busca(txtCedula.Text) = 1 Then
    If MsgBox("Seguro de Eliminar Registro?", vbQuestion + vbYesNo, "cantv") = vbYes Then
        cargarecordseT1
        Registros.Delete
    End If
Else
    MsgBox "Cedula Invalido.......", vbCritical, "cantv"
End If
desactiva
LIMPIA
txtCedula.SetFocus
Exit Sub
Mensaje:
MsgBox "Opeacion NO Valida.......", vbCritical, "cantv"
LIMPIA
txtCedula.SetFocus
End Sub

Private Sub cmdModifica_Click()
'On Error GoTo Mensaje:
cargaREcordset
If Busca(txtCedula.Text) = 1 Then
    cargarecordseT1
    Registros.Edit
    guarda
Else
    MsgBox "Cedula Invalida.......", vbCritical, "IUSPO"
End If
desactiva
Exit Sub
'Mensaje:
'MsgBox "Opeacion NO Valida.......", vbCritical, "cantv"
'LIMPIA
'txtCedula.SetFocus
End Sub

Private Sub cmdsalir_Click()
Unload Me
End Sub

Este ejemplo fue hecho con formularios y creo que las instrucciones que utilizas en tu programa las puedes utilizar también, por supuesto, luego de haber hecho las instrucciones que aquí te indico.
Espero que este ejemplo te sea de ayuda.