I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan kun åbne den på 2 måder: 1) Ved at åbne hele den anden database i en ny instans af Access. Det kræver dog at databasen er forberedt på at skulle åbne præcis den formular. Der er forskellige måder at gøre dette (ingen af dem særlig simple)
2) Lav den anden database om til en .mde-fil. Derved kan du lave en reference fra VB til databasen, hvorved du får direkte adgang til alle formularer m.m. i den anden database.
>thomasjepsen 2) Hvordan får man den direkte adgang til forms og rapporter i .mde filen. Jeg har lavet en reference til basen og den optræder i objektoversigten. Hvordan komer jeg videre herfra ?
Den kan ikke finde formularen. Siger at den ikke eksisterer. Er det bare navnet på formularen der skal skrives - eller er der flere parametre der skal med ?
Jeg har lavet det før, men havde glemt, at man er nødt til at have en public funktion/procedure i .mde'en som åbner formularen. Dernæst er det denne funktion/procedure, som man kalder hvorved formularen åbnes.
Beklager min dårlige hukommelse så tidligt på året.
Take a look at this ************ Code Start ************* ' This code was originally written by Dev Ashish. ' It is not to be altered or distributed, ' except as part of an application. ' You are free to use it in any application, ' provided the copyright notice is left unchanged. ' ' Code Courtesy of ' Dev Ashish ' Private Declare Function apiSetForegroundWindow Lib "user32" _ Alias "SetForegroundWindow" _ (ByVal hwnd As Long) _ As Long
Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" _ (ByVal hwnd As Long, _ ByVal nCmdShow As Long) _ As Long
Function fOpenRemoteForm(strMDB As String, _ strForm As String, _ Optional intView As Variant) _ As Boolean Dim objAccess As Access.Application Dim lngRet As Long
On Error GoTo fOpenRemoteForm_Err
If IsMissing(intView) Then intView = acViewNormal
If Len(Dir(strMDB)) > 0 Then Set objAccess = New Access.Application With objAccess lngRet = apiSetForegroundWindow(.hWndAccessApp) lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL) 'the first call to ShowWindow doesn't seem to do anything lngRet = apiShowWindow(.hWndAccessApp, SW_NORMAL) .OpenCurrentDatabase strMDB .DoCmd.OpenForm strForm, intView Do While Len(.CurrentDb.Name) > 0 DoEvents Loop End With End If fOpenRemoteForm_Exit: On Error Resume Next objAccess.Quit Set objAccess = Nothing Exit Function fOpenRemoteForm_Err: fOpenRemoteForm = False Select Case Err.Number Case 7866: 'mdb is already exclusively opened MsgBox "The database you specified " & vbCrLf & strMDB & _ vbCrLf & "is currently open in exclusive mode. " & vbCrLf _ & vbCrLf & "Please reopen in shared mode and try again", _ vbExclamation + vbOKOnly, "Could not open database." Case 2102: 'form doesn't exist MsgBox "The Form '" & strForm & _ "' doesn't exist in the Database " _ & vbCrLf & strMDB, _ vbExclamation + vbOKOnly, "Form not found" Case 7952: 'user closed mdb fOpenRemoteForm = True Case Else: MsgBox "Error#: " & Err.Number & vbCrLf & Err.Description, _ vbCritical + vbOKOnly, "Runtime error" End Select Resume fOpenRemoteForm_Exit End Function '************ Code End *************
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.