DAO verwijzing aan voor heel netwerk

Status
Niet open voor verdere reacties.

brakkeleer

Gebruiker
Lid geworden
27 mei 2006
Berichten
296
Hallo,

Ik heb een sjabloon gemaakt (VBA Word).
Die werkt prima op mijn laptop.
Nu moet deze in een netwerk gaan draaien. Hij werkt alleen als de DAO verwijzing 3.6 libary aangevinkt is.

Het probleem is dat het netwerk uit meer als 600 pc / terminals bestaat. Dus is (haast) onmogelijk om deze verwijzing handmatig op elke pc aan te zetten.

Dus ik zoek een stukje code waarmee ik deze dao verwijzing automatisch aanzet.
Misschien in de vba code zelf? of opstart script? register aanpassing van de server (niet mijn voorkeur).

Ik hoop dat iemand dit al eens heeft meegemaakt en me hiermee kan helpen

alvast bedankt voor de informatie

Groetjes
 
Hieronder een iets andere benadering om je probleem op te lossen.
Code:
    Dim con As Object
    Dim rs As Object
    Dim stSql As String

    ' Find the item in the Switchboard Items table
    ' that corresponds to the button that was clicked.
    Set con = Application.CurrentProject.Connection
    Set rs = CreateObject("ADODB.Recordset")
    stSql = "SELECT * FROM [Switchboard Items] "
    stSql = stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn
    rs.Open stSql, con, 1    ' 1 = adOpenKeyset
Ik heb deze code uit het door de wizard aangemaakte switchboard geplukt in Access. Het gaat erom dat je de ADODB.Recordset vervangt door de DAO variant. Er hoeven nu geen references te worden aangeklikt.
Het enige nadeel is wel dat de intellisense niet werkt. VBA heeft nu geen idee wat voor object je gecreeerd hebt.

HTH:D
 
References toevoegen via code kan wel.
Je moet alleen zeker weten dat de benodigde dll's op de pc's staan.
Onderstaande voorbeeld is voor Access, maar met een paar aanpassingen moet het ook in de andere office toepassingen werken.

Code:
Function FixUpRefs()
    Dim loRef As Access.Reference
    Dim intCount As Integer
    Dim intX As Integer
    Dim blnBroke As Boolean
    Dim strPath As String

    On Error Resume Next

    'Count the number of references in the database
    intCount = Access.References.Count
  
    'Loop through each reference in the database
    'and determine if the reference is broken.
    'If it is broken, remove the Reference and add it back.
    Debug.Print "----------------- References found -----------------------"
    Debug.Print " reference count = "; intCount

    For intX = intCount To 1 Step -1
      Set loRef = Access.References(intX)
      With loRef
        Debug.Print " reference = "; .FullPath
        blnBroke = .IsBroken
        If blnBroke = True Or Err <> 0 Then
          strPath = .FullPath
          Debug.Print " ***** Err = "; Err; " and Broke = "; blnBroke
          With Access.References
            .Remove loRef
            Debug.Print "path name = "; strPath
            .AddFromFile strPath
          End With
        End If
       End With
    Next
     '''Access.References.AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
    
  Set loRef = Nothing
  
  ' Call a hidden SysCmd to automatically compile/save all modules.
  Call SysCmd(504, 16483)
End Function


Function AddRefs()
    Dim loRef As Access.Reference
    Dim intCount As Integer
    Dim intX As Integer
    Dim blnBroke As Boolean
    Dim strPath As String

    On Error Resume Next
  
    'Loop through each reference in the database
    'Add all references
    Debug.Print "----------------- Add References -----------------------"
    
          With Access.References
            .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"
            .AddFromFile "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll"
            .AddFromFile "C:\Program Files\Microsoft Office\Office\msacc9.olb"
            .AddFromFile "C:\Program Files\Common Files\System\ado\msado15.dll"
            .AddFromFile "C:\Program Files\Common Files\System\ado\msado25.tlb"
            .AddFromFile "C:\Program Files\Common Files\System\ado\msadox.dll"
            .AddFromFile "C:\WINNT\System32\stdole2.tlb"
            .AddFromFile "C:\WINNT\System32\scrrun.dll"
          End With
      
  ' Call a hidden SysCmd to automatically compile/save all modules.
  Call SysCmd(504, 16483)
End Function
 
Laatst bewerkt:
Super bedankt voor jullie reactie.

Bij elk sjabloon zou ik dan bovenstaande code moeten toevoegen?
Ik moet wel ff kijken wat ik allemaal moet veranderen omdat het word is ipv acces.

Groetjes
 
Hallo ,

Ik heb vanalles geprobeerd, maar krijg dit niet aan de gang.
Access is toch echt anders als word...

Heeft iemand ervaring met deze verwijzing binnen Word aan te zetten?

Of weet iemand met welke register sleutel ik het kan veranderen?

Alvast bedankt.

Groetjes
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan