Avatar billede sorenstrom Nybegynder
24. september 2002 - 23:41 Der er 7 kommentarer og
2 løsninger

Kalde Access-fil fra VB

Jeg vil gerne kalde en .MDB-fil direkte fra VB6.
Koden skal afvikles på en maskine, hvor der kun findes
Access Runtime.

I .MDB-filen ligger en AUTOEXEC-makro, der automatisk udfører en kode, og lukker Access igen.

Kan nogen hjælpe mig.

vh. Søren
Avatar billede martin_moth Mester
25. september 2002 - 00:34 #1
1)
Som du har formuleret ovenstående, går jeg ud fra, at du vil starte access fra dit vb-program - så er det bare at bruge kommandoen

Shell programnavn [eventuel parameter]
Fx. Shell c:\programmer\Access.exe MinDatabase.mdb - get it?

2)
Noget helt andet er, hvis du vil åbne en access-database i VB - det kan man nemmerlig sagtens, se f.eks. http://www.eksperten.dk/spm/252045

3)
Og så noget helt tredie - du kan oprette et objekt, der har forbindelse til Access ( ActiveX ) - et eksempel, der bruger den indbyggede fakkultet-funktion fra Excel:

Dim xlapp as object
Dim Mittal as Byte
Mittal = Inputbox("Indtast det tal du vil tage fakultet til:")
Set xlapp = CreateObject("Excel.application") '<- HER oprettes forbindelsen
res = xlapp.fact(Mittal) '<- Her kaldes en funktion fra Excel
xlapp.quit
set xlapp = Nothing

Tilsvarende kan du oprette en forbindelse til Access, og derigennem få afviklet den macro du ønsker.

Så det kommer lidt an på hvad du mener med "Jeg vil gerne kalde en .MDB-fil direkte fra VB6"...?

/Martin
Avatar billede terry Ekspert
25. september 2002 - 08:28 #2
You need a refrence to Access in your project

Private Sub Automate_Click()
Dim Acc As New Access.Application
   
    Set Acc = CreateObject("Access.Application")
   
    Acc.OpenCurrentDatabase "D:\YourDatabase.mdb"
   
    Acc.DoCmd.RunMacro "MyMacro"
   
    Set Acc = Nothing
           
End Sub
Avatar billede terry Ekspert
26. september 2002 - 08:25 #3
sorenstrom have you got the answer you want?
Avatar billede jgni Nybegynder
26. september 2002 - 19:26 #4
I don't know if he had, but I may had :)
Avatar billede sorenstrom Nybegynder
26. september 2002 - 19:52 #5
>> terry
Ja, jeg har fået, og afprøvet. Det ser ud til at virke, hvis Access er installeret på maskinen, men hvis der kun er installeret Access Runtime, får jeg fejlen "Automation error"

Jeg har måske lavet en fejl, så jeg tester lige lidt mere, og vender så tilbage.
Avatar billede terry Ekspert
26. september 2002 - 21:02 #6
What is it the code actually does? This COULD be the problem, otherwise I must admit that I have NOT tried this with the Access runtime, well now I know that it isnt possible. I think your ONLY solution is to install Access.

Although you MAY be able to do it another way, although again I have NOT tried this. Agin this depends on what your code does!

From VB you can call a query and in the query you call a function which does what ever you want.
Avatar billede sorenstrom Nybegynder
26. september 2002 - 21:23 #7
>>terry
Du skal lige vide, hvad hensigten er:
Jeg har behov for, at exportere data til en tekstfil, som skal indlæses i Concorde C5, men jeg kan ikke finde ud af at gøre det i VB, da formatet skal være VESTEUROPÆISK (DOS) så Æ, Ø og Å læses rigtigt.
Det kan jeg til gengæld gøre via en makro i Access.
Avatar billede terry Ekspert
27. september 2002 - 08:06 #8
have you tried the other solution I mentioned?
When you export do you write this to a file or what?
Avatar billede sorenstrom Nybegynder
08. oktober 2002 - 08:15 #9
UNDSKYLD VENTETIDEN. Der kom noget andet i vejen.
Jeg kan kun få det til at virke med MARTIN_MOTHS's forslag.
Selv om det ville være rart at kunne gøre det helt uden Access.
Jeg har dog brugt TERRY's svar i en anden sammenhæng.

vh. Søren
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester