24. maj 2001 - 10:52Der er
3 kommentarer og 2 løsninger
Aktivere macro i access fra VB
Hej Jeg har fin forbindelse til min access db fra vb (vba), og kan både skrive og læse i databasen. MEN jeg har programmeret en macro i access som jeg gerne vil kalde/aktivere fra vb. Kender nogen koden for det i vb.
Du må kunne bruge Run funktionen i Access application objektet. Citat fra online help:
You can use the Run method to carry out a specified Microsoft Access or user-defined Function or Sub procedure. This method is useful when you are controlling Microsoft Access from another application through Automation, formerly called OLE Automation. For example, you can use the Run method from an ActiveX component to carry out a Sub procedure that is defined within a Microsoft Access database.
Argument Description application The Application object. procedure The name of the Function or Sub procedure to be run. If you are calling a procedure in another database use the project name and the procedure name separated by a dot in the form:\"projectname.procedurename\"If you execute Visual Basic code containing the Run method in a library database, Microsoft Access looks for the procedure first in the library database, then in the current database. arg1, arg2, ... Optional. The arguments for the specified Function or Sub procedure. You can supply a maximum of thirty arguments.
Tjaaaaaaaaaaa Jeg har prøvet det du foreslår, men uden held. Min kode lyder:
Sub Form_deactivate()
Dim db as database Set db = opendatabase(\"c:\\test.mdb\") \'(kode for at aktivere macro???) \'(har prøvet: db.execute (\"hent_data\") \' navn på macro er \"hent_data\" \'funktionen run findes ikke efter db.
Det fremgår ikke rigtigt hvor din kode bliver udført - er det et frit-i-luften-svævende Visual Basic program, kører det som Visual Basic for Applications inden i fx et af de andre Office-programmer (Word, Excel, Powerpoint el lign), eller bliver det udført inden i Access (det sidste ville være det nemmeste, men så nemt er det nok ikke).
Med den viste kode åbner du din database som et Database objekt, men du har ikke nødvendigvis dermed adgang til alt, hvad Access tilbyder (heller ikke selvom databasen oprindeligt er skabt som en Access-database).
Hvis du ønsker at udføre din Access-makro, er du nok nødt til at skaffe dig en Access.Application til at gøre det i. Noget i retning af:
Dim accApp as New Access.Application accApp.OpenCurrentDatabase(\"c:\\test.mdb\") accApp.Run \"hent_data\", \"parametre\"
Måske får du alternativt brug for at se på accApp.DoCmd objektet til dette formål
Jeg programmerer en maskinstyring i et program kaldet RSview32, som er beregnet til at skabe kommunikation imellem en operatør og hans maskine. I programmet er påhægtet VBA, og det er her programmeringen foregår. Jeg fandt løsningen vha DoCmd.RunMacro \"Your macro\" forslaget.
Som i sikkert har luret, er jeg meget grøn på vb, men det er interessant program. Jeg siger tak for hjælpen.
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.