09. september 2004 - 22:15
Der er
1 løsning
Åben Access-DB med system database, password og brugernavn
Jeg har en VB-app hvorfra jeg skal åbne en Access rapport, jeg har fået egen system database, password og brugernavn på databasen.
Jeg skal nu have tilrettet min kode som fungerede før system database, password og brugernavn blev tilføjet.
Min nuværende kode er:
_________________________________________________________________
Private Sub AccessRapport()
Dim myDB As Access.Application
Dim intFaknr As Integer
MousePointer = vbHourglass
intFaknr = txtFaknr
Set myDB = CreateObject("Access.Application")
With myDB
.OpenCurrentDatabase strPath
.DoCmd.OpenReport "repAccessRapport", acViewPreview, , "Faktura_ID = " & intFaknr
.Reports!repAccessRapport!txtIalt = txtBeløb(0)
.Reports!repAccessRapport!txtIalt.Visible = True
.Reports!repAccessRapport!txtMoms = txtBeløb(1)
.Reports!repAccessRapport!txtMoms.Visible = True
.Reports!repAccessRapport!txtTotal = txtBeløb(2)
.Reports!repAccessRapport!txtTotal.Visible = True
.Reports!repAccessRapport!tekst23 = txtKunde
.Reports!repAccessRapport!tekst23.Visible = True
.DoCmd.PrintOut acPrintAll
.CloseCurrentDatabase
.Application.Quit acQuitSaveNone
End With
Set myDB = Nothing
MousePointer = vbNormal
End Sub
_________________________________________________________________
Er der nogen der har en løsning
Hilsen JBjerre
10. september 2004 - 11:52
#1
Jeg er selv kommet frem til en løsning, ved hjælp af nettet
Min løsning.
____________________________________________________________________________
Private Sub AccessRapport()
On Error GoTo ErrHandler
Dim myDB As Access.Application
Dim intFaknr As Integer
Dim Application As String, dbs As String, workgroup As String
Dim user As String, password As String, ErrApp As String
Dim cTries As Integer
Dim x
MousePointer = vbHourglass
' This is the default location of Access
Application = "C:\Programmer\Microsoft Office\Office10\MSACCESS.EXE"
' Use the path and name of a secured MDB on your system
dbs = "C:\Dinsti\DB.mdb"
' This is the default workgroup
workgroup = "C:\DinSystemDatabase\Din.mdw "
user = "Brugernavn" ' Use a valid username
password = "DitPassword" ' and correct password
x = Shell(Application & " " & Chr(34) & dbs & Chr(34) & " /nostartup /user " & user & _
" /pwd " & password & " /wrkgrp " & Chr(34) & workgroup & Chr(34), vbMinimizedFocus)
Set myDB = GetObject(, "Access.Application")
intFaknr = txtFaknr
With myDB
.DoCmd.OpenReport "repAccessRapport", acViewPreview, , "Faktura_ID = " & intFaknr
.Reports!repAccessRapport!txtIalt = txtBeløb(0)
.Reports!repAccessRapport!txtIalt.Visible = True
.Reports!repAccessRapport!txtMoms = txtBeløb(1)
.Reports!repAccessRapport!txtMoms.Visible = True
.Reports!repAccessRapport!txtTotal = txtBeløb(2)
.Reports!repAccessRapport!txtTotal.Visible = True
.Reports!repAccessRapport!tekst23 = txtKunde
.Reports!repAccessRapport!tekst23.Visible = True
.DoCmd.PrintOut acPrintAll
.CloseCurrentDatabase
.Application.Quit acQuitSaveNone
End With
Set myDB = Nothing
MousePointer = vbNormal
Exit Sub
ErrHandler: ' <--- This line must be left-aligned.
' Access isn't registered in the Running Object Table yet, so call
' SetFocus to take focus from Access, wait half a second, and try
' again. If you try five times and fail, then something has probably
' gone wrong, so warn the user and exit.
MousePointer = vbNormal
Select Case Err
Case 53
ErrApp = InputBox("Indtast placering af access", "Placering af access", Application)
If ErrApp <> "" Then
Application = ErrApp
Resume
Else
Set myDB = Nothing
Exit Sub '<= angiv handling hvis Accessplacering ikke kan findes
End If
Case Else
SetFocus
If cTries < 5 Then
cTries = cTries + 1
Sleep conPause ' vent 1/2 seconds
Resume
Else
MsgBox "Programmet kan ikke få kontakt med Access. Proceduren standset.", _
vbMsgBoxSetForeground
End If
End Select
End Sub
_______________________________________________________________________________
Er der bemærkninger er i velkomne med disse
Hilsen JBjerre.