• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

access openen vanuit excel met vba

Status
Niet open voor verdere reacties.

Ralbers

Gebruiker
Lid geworden
8 jul 2011
Berichten
190
Hallo allemaal,

Het lijkt mij een simpel stukje code.
Maar ik krijg het niet voor elkaar.

Ik wil met een knop in excel een specifiek access bestand openen.
Dit bestand en de locatie hiervan zijn altijd hetzelfde

Na een ochtend google kan ik de goede vba code nog steeds niet vinden

Code:
Sub start_10_database()
access.Application.OpenCurrentDatabase ("G:\Excel\xxx\Database\xxx.accdb")
End Sub

Sub start_10_database()
ChDir "G:\Excel\xxx\Database"
End Sub

Ik heb al vanalles geprobeerd
Maar ik krijg constant fout 424 object vereist

Heeft iemand enig idee?
 
is "access" wel gedefinieerd? Je moet daarvoor "interop" toevoegen aan je referenties lijst of het access object met de hand maken.
 
Het klinkt alsof het dan niet gedefinieerd is
Maar ik heb te weinig kennis van vba om precies te snappen wat je bedoeld

ik heb al wat dingen als

Code:
dim vb as access.application

ook dat was zonder resultaat
Dus ik denk dat ik ergens een aantal dingen niet precies goed heb
maar ik geloof niet dat het heel moeilijk moet zijn
 
Code:
Set AO = CreateObject("Access.Application")

of bij de references (tools->"references...")

"microsoft access 12.0 object library"

toevoegen
 
Ik heb nu dit
Code:
Sub start_10_database()
Set AO = CreateObject("Access.Application")
AO.OpenCurrentDatabase ("G:\Excel\xxx\Database\xxx.accdb")
End Sub

Ik krijg geen fout meer (jippie)
Maar daar houd het feest helaas ook op

Er opent zich wel duidelijk een venstertje
Alleen die sluit direct weer
Je ziet alleen heel even de omtrek ervan

dat references kan ik niet vinden
ik gebruik office 2010 in het nederlands
 
Dat komt omdat access wel geopend wordt (probeer ook eens ctrl-alt-del -> taakbeheer ; daar zou access nu tussen moeten staan), maar de verdere aansturing moet je ook doen. Je opent nu alleen de database. probeer eens

Code:
AO.Visible = true
toe te voegen na het openen

In het nederlands is het "Extra -> verwijzingen"
 
Laatst bewerkt:
We komen steeds verder

ik krijg nu het begin scherm van access te zien (waar je nieuwe database kunt aanmaken)

Hierna sluit hij echter direct weer af

Ook die aanpassing in verwijzingen geeft geen resultaat
 
Als je Late binding gebruikt dan kun je de voorbeeldcode van wampier gebruiken, en hoef je geen bibliotheek te laden. Als je Early binding wilt gebruiken, dan moet je de Access bibliotheek toevoegen (<Extra>, <Verwijzingen>. De twee varianten open je dan zo:
Early binding:
Code:
Dim appAccess As New Access.Application
Set appAccess = Access.Application

Late binding:
Code:
Dim app As Object
Set app = CreateObject("Access.Application")
en verder met:
Code:
With app 'of appAccess
    .OpenCurrentDatabase "H:\_HelpMij\Munten 2k3.mdb.mdb"
    .Visible = True
End With
 
yea hij werkt

Ik snap niet waarom het zo moeilijk moet zijn en het niet gewoon kan zijn open die link maar dat zal wel lijken in mijn onnozele ogen.

Bedankt voor de hulp allebei
 
werkt dit dan ook als ik dit op een andere computer doe?
of moet ik daarvoor die verwijzing aanzetten?
 
Het is in feite HEEL moeilijk, maar gelukkig hoef je dat allemaal niet te snappen om het te kunnen gebruiken ;)

Late binding (createobject...) werkt altijd (zolang access tenminste geïnstalleerd is e.d. natuurlijk). early binding met referenties moet per PC gedaan worden (daarom prefereer ik zelf late binding, ook al lijkt dat wat moeilijker)
 
Het rare is dat ik die late binding niet aan de praat krijg
Maar gelukkig deed die early binding het op alle computers waar ik het op getest heb zonder iets aan te passen
(behalve die zonder access waar ik na het testen pas achter kwam natuurlijk:P)

Dus uiteindelijk snap ik er allemaal geen fluit van zolang het maar werkt:P

bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan