Avatar billede aase_kirk Nybegynder
16. april 2008 - 12:18 Der er 4 kommentarer og
1 løsning

Hjælp til kode i hovedmodul

Hej
Jeg prøver at lære lidt om SQL og VBA i Access 2003 og har lånt en bog, skrevet af Poul Kimmel om VBA. Jeg har bestilt Access 2003 VBA Programmer's Reference, Beginning Access 2003 VBA og Beginning SQL. Er der nogen der vil anbefale noget yderligere? Jeg har også prøvet at eksperimentere lidt selv og er straks løbet ind i noget jeg ikke kan forstå, måske kan nogen hjælpe? Jeg har lavet en lille db og indsat nedenstående som virker:
Private Sub Tal_Enter()
    If Me.Tal = 5 Then
    MsgBox "sjov"
    ElseIf Me.Tal > 5 Then
    MsgBox "meget sjovt"
    Else
    MsgBox "trist"
    End If
End Sub

Men dette her, som er i et hovedmodul og indsat under hændelsen ”after update  =test() ”,  virker ikke rigtigt, der kommer kun en MsgBox frem med ”trist” uanset tallets størrelse, hvordan kan det være? Og hvorfor er den ene Sub og den anden Function?

Public Function Test()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim Tal As Single
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
        If Tal = 5 Then
        MsgBox "sjov"
        ElseIf Tal > 5 Then
        MsgBox "meget sjovt"
        Else
        MsgBox "trist"
        End If
 
    'rs.Close
    'cn.Close
   
    Set rs = Nothing
    Set cn = Nothing
   
End Function


MVH
Aase
Avatar billede terry Ekspert
16. april 2008 - 12:31 #1
If the ORIGINAL code is in a form then the code can 'see' me.Tal which is private to the form. The code in function test() has its own variable named TAL but your not setting it to any value, so it will always be "trist".
Avatar billede aase_kirk Nybegynder
16. april 2008 - 12:38 #2
Hvad skal jeg så skrive for at få det til at fungere?
Avatar billede terry Ekspert
16. april 2008 - 17:45 #3
"Hvad skal jeg så skrive for at få det til at fungere?"

well it all depend on what you want to do, but a guess ...

Public Function Test()
'No idea what your doing with the recordset!

Dim Tal As Single

'Replace NameOfFormGoesHere with the name of the form which contains the field Tal

Tal = Forsm!NameOfFormGoesHere.Tal

    If Tal = 5 Then
        MsgBox "sjov"
    ElseIf Tal > 5 Then
        MsgBox "meget sjovt"
    Else
        MsgBox "trist"
    End If
   
End Function
Avatar billede aase_kirk Nybegynder
16. april 2008 - 21:09 #4
Mange tak Terry
Det fungerer. I sig selv kan det jo ikke bruges til noget, men det viser mig sammenhæng, som jeg ikke kan finde eller forstå i min bog.
"No idea what your doing with the recordset"
Ja, det ved jeg heller ikke :-), men det står i næsten alle eksempler, så det troede jeg skulle med.
Jeg opretter et nyt spørgsmål på hvornår det skal med og ikke.
Forresten, er begge mine eksempler en function?
Igen tak. Jeg syntes det er flot at mennesker vil bruge deres tid på sådan nogle som mig.
mvh
Aase
Avatar billede terry Ekspert
17. april 2008 - 08:31 #5
The first example is a sub and the last a function. You can see that at the start and finish.
http://www.cpearson.com/excel/differen.htm

Og selv tak
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



IT-JOB

Politiets Efterretningstjeneste

Testere med flair for test management

IT & Co ApS

IT-tekniker

Aller Leisure A/S

Erfaren .NET-udvikler

Cognizant Technology Solutions Denmark ApS

Test Manager