Avatar billede cpn80 Nybegynder
19. oktober 2005 - 08:29 Der er 3 kommentarer

Brug af DSum i word VBA

Hej

Jeg har et lille programmeringsprojekt igang i VBA i word, og her optræder en "gene"

Jeg bruger funktionen Dsum

Dim dbMyDB As Database
Dim rsMyRS As Recordset
Dim tmp_sum As Integer
Dim sSQL As String


Set dbMyDB = OpenDatabase("C:\ismaskine.mdb")
Set rsMyRS = dbMyDB.OpenRecordset("Ismaskine_statistik", dbOpenDynaset)
   
rsMyRS.AddNew
rsMyRS!samlet_pris = Samlet_ispris
rsMyRS.Update

rsMyRS.AddNew
rsMyRS!Samlet_Joule = samletjoule
rsMyRS.Update

Samlet_ispris = Dsum("Samlet_Pris", "Ismaskine_statistik")
Label29.Caption = Samlet_ispris



Men netop Dsum-delen gir mig et problem.

Samlet_ispris = Dsum("Samlet_Pris", "Ismaskine_statistik")
Label29.Caption = Samlet_ispris

For at den virker er det nødvendigt at jeg har access-databasen åben i forvejen.


Mit spørgsmål er følgende:
Kan det lade sig gøre at anvende funktionen uden først at skulle åbne access manuelt ?

Hilsen CPN
Avatar billede supertekst Ekspert
19. oktober 2005 - 10:41 #1
Prøv at se følgende VBA-kode, som er indlagt i Word (ThisDocument):

'Referencen Microsoft DAO x.x skal sættes Tools|References
Sub ProgramStart()
Dim db As Object
    Set db = GetObject("d:\eksperten\dsum\dsum.mdb")
   
    With db
        total = .DSum("[total]", "tabel1")
    End With
End Sub

- - -
I eksemplet arbejdes der med en lille database, med tabellen: Tabel1, der indeholder to felter: NR og TOTAL
DAO er dataadgangsobjekt - d.v.s. du kan anvende en database - som her fra Word - uden at åbne denne.
Avatar billede cpn80 Nybegynder
19. oktober 2005 - 10:51 #2
Det gør jeg også nu

Denne del:
Set dbMyDB = OpenDatabase("C:\ismaskine.mdb")
Set rsMyRS = dbMyDB.OpenRecordset("Ismaskine_statistik", dbOpenDynaset)
   
rsMyRS.AddNew
rsMyRS!samlet_pris = Samlet_ispris
rsMyRS.Update

rsMyRS.AddNew
rsMyRS!Samlet_Joule = samletjoule
rsMyRS.Update

har ikke behov for at have en åben database.. det er kun i den sidste del:
Samlet_ispris = Dsum("Samlet_Pris", "Ismaskine_statistik")
Label29.Caption = Samlet_ispris
hvor jeg anvender Dsum funktionen at det er nødvendigt
Avatar billede cpn80 Nybegynder
19. oktober 2005 - 10:52 #3
ups.. så lige forkert... lol.. tjekker det lige af .. glem mit ovenstående 8)
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