DAO y abrir formulario de Access

Me he conectado a Access con DAO y hago una serie de operaciones, pero ahora quiero abrir un formulario y un informe en Access ¿Cómo tengo que hacerlo?

1 Respuesta

Respuesta
1
No te sirve la conexion por DAO, debes referenciar (menu referencias) Microsoft Access 10.0 Object Library y desde ahi instanciar un objeto tipo access.
Luego, abre la BBDD con sentencias de este tipo :
Dim objAcces As New Access
call Access.OpenAccessProject ([NombreArchivo], [ModoexlusivoSi/NO])
Luego juega con la estructura :
Access. Application
Espero que te sea util.
Access. Application. Forms tiene los formularios...
Etc.
Suerte
Veras lo que hago.
Public workBD As Workspace
Public FileBD As Database
Public regisBD As Recordset
Set workBD = DBEngine.Workspaces(0)
Set FileBD = workBD.OpenDatabase("C:\Usr\prueba.mdb", , True)
Set regisBD = FileBD.OpenRecordset("elementos", dbOpenDynaset)
'Aqui hago varias cosas. Tengo menus y opciones. Inserto registros, etc.
regisBD.Close
FileBD.Close
workBD.Close
Dim appaccess As Access.Application
Set appaccess = New Access.Application
appaccess.OpenCurrentDatabase ("c:\usr\prueba.mdb")
appaccess.DoCmd.OpenForm nombre_formulario, acNormal
Esto es lo que intento hacer (resumido) y no me abre el formulario. Tampoco me da ningún error.
Es que no recuedo la propiedad para maximizar acces, pero...
Bueno, si esto no te vale la busco.
Option Explicit
'API Declarations
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'API Message Constants
Private Const SW_MAXIMIZE = 3
Private Const SW_NORMAL = 1
Usage
Dim appAccess As New Access.Application
Public Sub MaximizeAccess()
'Maximize Access Application
Dim hWnd As Long
hWnd = FindWindow("OMain", "Microsoft Access")
If hWnd <> 0 Then
ShowWindow hWnd, SW_NORMAL
ShowWindow hWnd, SW_MAXIMIZE
End If
End Sub
'Open an Access Form
Private Sub Command1_Click()
appAccess.DoCmd.OpenForm "Categories", acNormal, , , , acDialog
End Sub
'Print an Access Report
Private Sub Command2_Click()
appAccess.DoCmd.OpenReport "Catalog", acViewNormal
End Sub
Private Sub Command3_Click()
MaximizeAccess
End Sub
'Open a Database
Private Sub Form_Load()
appAccess.OpenCurrentDatabase "C:\Program Files\Microsoft Visual Studio\VB98\nwind.mdb", True
End Sub
'Close the database and the Access Instance
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
AppAccess. CloseCurrentDatabase
AppAccess. DoCmd. Quit acQuitSaveNone
End Sub
Perdona, pero no entiendo para que es esto.
Con esta orden abres el formulario suelto.
appaccess.OpenCurrentDatabase (app.Path & "\BaseDeDatos.mdb")
Appaccess. DoCmd. OpenForm "Formulario a abrir", acNormal,,,, acDialog
Lo otro era para abrir la ventana de Access via SDK de windows. Creo que con esto te valdrá.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas