Avatar billede juks Novice
25. oktober 2001 - 13:46 Der er 3 kommentarer og
1 løsning

indsæt event i en runtime accessdb(where are Terry)

Hej !
Jeg har lavet en access-database som vi har solgt og distriburet til en masse kunder, nu har jeg så fundet en lille fejl, i  en rapport. jeg vil så gerne lave en exe-fil der skal tilføjes en Event der hedder...
Jeg kan godt connete til Databasen med ved ikke hvilke commands jeg skal bruge for create en ny event procedure ........
kodestart-----

Private Sub Report_Open(Cancel As Integer)
Me.Diagram84.Requery
End Sub

slut.-------

i en rappport der fx. hedder  \"graf1.\"
Databasen hedder \"forsøg.mdb\"
Det er lavet i access2000
hvordan gør jeg det nemmest...
Det kan enten være i VB eller C# or VBS eller
Avatar billede jennemaan Nybegynder
25. oktober 2001 - 13:58 #1
Du starter et nyt vb projekt

Under tools-references laver du en reference til MS Access 9.0 object library

Nu kan du i koden skrive

Dim x As New Access.Application

x.OpenAccessProject \"forsøg.mdb\"

\'enten
x.Reports(\"graf1\").Module.AddFromFile \"dinkode.bas\"

\'eller
Dim lngProcNum As Long
Dim lngStartline As Long
lngProcNum = x.Reports(\"graf2\").Module.CreateEventProc(\"Report_Open\")

lngStartline = x.Reports(\"graf2\").Module.ProcStartLine(\"Report_Open\")
x.Reports(\"graf2\").Module.InsertLines lngStartline + 1, \"Me.Diagram84.Requery\"

x.CloseCurrentDatabase

/Jennemaan
Avatar billede terry Ekspert
25. oktober 2001 - 14:30 #2
Hi juks> It looks as though Jennemaan has a solution for you!

Just an idea. If you have an Access front end which contains forms reports etc. and a backend containing only the data. Then you would only need to alter the frontend and then disribute that instaed of having to make your changes via an EXE program.
Avatar billede jennemaan Nybegynder
25. oktober 2001 - 16:01 #3
øhmm... sad lige og legede... ovenstående virker ikke...

Men dette gør:

Dim x As Access.Application
Dim strDBPath    As String
Const DB_PATH As String = _
      \"c:\\forsog.mdb\"
Set x = New Access.Application
 
Dim rpt As Report
 
 
 
With x
      .OpenCurrentDatabase DB_PATH
      .DoCmd.OpenReport \"graf1\", acViewDesign
      Set rpt = .Reports(\"graf1\")
      rpt.Module.AddFromString \"Private sub Report_Open(Cancel As Integer)\" & vbCrLf & \"msgbox \"\"Hello World\"\"\" & vbCrLf & \"End Sub\"
End With
x.Quit
Set x = Nothing

/Jennemaan
Avatar billede juks Novice
27. oktober 2001 - 00:30 #4
Terry jeg ved det godt..... men nu er det et meget gammelt program startede Access 2.0 og det har hele tiden være ændringer i tabel strukturen så den har ikke kunne blive splittet op før end nu. og nu bliver den nok lagt ud som net-løsníng!!!

Jennemaan Tusind tak for hjælpen ..
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