Avatar billede mundt Nybegynder
16. oktober 2002 - 15:00 Der er 2 kommentarer og
1 løsning

Raport når ikke at hente data fra tabel

Jeg vælger nogle rækker i en listbox med musen og de rækker som er valgt bliver gemt i en tabel (tblChosenValues) ved tryk på en knap. Efterfølgende udskriver jeg en rapport, hvis Record Source er sat til "tblChosenValues".
Mit problem er at rapporten ikke viser noget. De data som bliver gemt i tabellen (hvilket de gør!), bliver ikke vist på rapporten.

Funktionaliteten som ligger bag knappen nævnt foroven er vist forneden.

Private Sub cmdPrintReport_Click()
On Error GoTo Err_cmdPrintReport_Click
   
    'Declaration of variables
    Dim strSQL As String
    Dim con As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim ctlSource As Control
    Dim lngcnt As Long
    DoCmd.Hourglass True

    Set rst = New ADODB.Recordset
    Set con = New ADODB.Connection
   
    'Indicates the name of the provider for the con object
    con.Provider = "Microsoft.Jet.OLEDB.4.0"
    'Opens the connection
    con.Open CurrentDb.Name, "admin", ""

    ExecuteSQL ("DELETE tblChosenValues.* FROM tblChosenValues;")

    'Open recordset
    rst.Open "tblChosenValues", con, adOpenKeyset, adLockOptimistic

    Set ctlSource = Form_frmTextSearch!lstSelectedTags

    For lngcnt = 1 To ctlSource.ListCount - 1
        If ctlSource.Selected(lngcnt) = True Then
            rst.AddNew
            rst!TagName = ctlSource.Column(0, lngcnt)
            rst!LogTime = ctlSource.Column(1, lngcnt)
            rst!Value = ctlSource.Column(2, lngcnt)
            rst.Update
        End If
    Next lngcnt
   
    DoCmd.OpenReport "rptPrintReport", acViewNormal
   
    rst.Close
    con.Close
   
    Set rst = Nothing
    Set con = Nothing
   
    DoCmd.Hourglass False
   
acViewNormal
   
Exit_cmdPrintReport_Click:
    Exit Sub

Err_cmdPrintReport_Click:
    MsgBox Err.Description
    Resume Exit_cmdPrintReport_Click
   
End Sub

Er der nogen som har en løsning?

mvh

Mundt
16. oktober 2002 - 15:05 #1
En kort bemærkning, inden jeg kigger nærmere på koden:

Den måde du initialisere din connection på, kan gøres langt hurtigere ved at benytte databasens egen connection.
Du skriver:
    Set con = New ADODB.Connection   
    'Indicates the name of the provider for the con object
    con.Provider = "Microsoft.Jet.OLEDB.4.0"
    'Opens the connection
    con.Open CurrentDb.Name, "admin", ""

Dette kan erstattes med:
    Set con = Currentproject.Connection
16. oktober 2002 - 15:09 #2
Jeg ville måske prøve at flytte lidt rundt på nogle af kommandoerne og evt indsætte en DoEvents:


    ...
    ...
      End If
    Next lngcnt       
    rst.Close
    con.Close   
    Set rst = Nothing
    Set con = Nothing
    DoEvents
    DoCmd.OpenReport "rptPrintReport", acViewNormal
Avatar billede mundt Nybegynder
17. oktober 2002 - 12:45 #3
Hej - det virker.
Faktisk kan jeg bruge dette flere steder i programmet jeg er ved at udvikle. Der er flere steder hvor jeg har problemer med opdatering af controller.
Det med con virker også og har minimeret antal linier kode, hvilket jo kun er plus.

Mange tak for hjælpen!!!

mundt
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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