Avatar billede comic123 Nybegynder
14. maj 2009 - 08:53 Der er 6 kommentarer og
1 løsning

Opdatering i flere tabeller

Hej
Jeg vil høre om der er nogen der kan hjælpe her. Jeg har en formular med flere faneblade. Jeg ønsker at opdatere på forskellige måder afhængig af hvilke felter der er udfyldt, min kode ser således ud:

Response = MsgBox(Msg, Style, Title, Help, Ctxt)
  If Response = vbYes Then
  MyString = "Yes"
  AL2 = Me![Medlem af anden loge]![Anden_ddfl_loge]
    If AL2 Is Null And MyString = "YES" Then
        DoCmd.RunSQL "Insert Into medlemdata (DDFL_NR,LOGENR, DataRetdato, DataRetInit)" & _
                      "VALUES(" & DDFL_nr & "," & LogeNr & ",NOW(), Currentuser())"
  Else
    DoCmd.RunSQL "Insert Into medlemdata (DDFL_NR,LOGENR, DataRetdato, DataRetInit, anden_ddfl_loge)" & _
                  "VALUES(" & DDFL_nr & "," & LogeNr & ",NOW(),Currentuser()," & [Anden_ddfl_loge] & ")"
  End If

  If MyString = "No" Then
DoCmd.RunCommand acCmdUndo


End If
End If


På forhånd tak
Avatar billede mugs Novice
14. maj 2009 - 09:41 #1
Jeg har ikke den store erfaring med faneblade, men i nedenstående linie bruger du det reserverede ord Me. Me refererer altid til den aktuelle formular, og du bruger Me med reference til en form og derefter et felt. Prøv at nøjes med Me efterfulgt af et.

AL2 = Me![Medlem af anden loge]![Anden_ddfl_loge]

Prøv at rette denne:

If AL2 Is Null And MyString = "YES" Then

Til:

if isnull(AL2) and mystring = "YES" then

Det vile iøvrigt lette arbejdet ikke så lidt, hvis vi får at vide om du får fejl, og i givet fald hvilen.
Avatar billede comic123 Nybegynder
14. maj 2009 - 11:01 #2
Hej Mugs
tak for dit hurtige svar, men jeg får denne fejl:

Run-time error '438'
Object doesn't support this property or method.

Jeg er lidt i tvivl om hvad du mener med "Prøv at nøjes med Me efterfulgt af et.

Det andet har jeg rettet, men jeg kommer ikke så langt.

Hilsen
comic
Avatar billede comic123 Nybegynder
14. maj 2009 - 11:04 #3
Hej igen

Jeg rettede følgende:

AL2 = Me![Medlem af anden loge]![Anden_ddfl_loge] til

AL2 = Me!Anden_ddfl_loge] hvad er forskellen på dette?

If AL2 Is Null And MyString = "YES" Then

Til:

if isnull(AL2) and mystring = "YES" then
Avatar billede mugs Novice
14. maj 2009 - 11:12 #4
Det reserveredeord Me refererer altid til den aktuelle formular.


I stedet for Me kan du gå den lange vej ned i objekthierakiet:

[Forms]![formularnavn]![feltnavn]

hvor Forms er objektsamlingen og formularnavn er navnet på objektet i forms efterfulgt af feltnavnet.

Men denne går ikke:

AL2 = Me!Anden_ddfl_loge]

du har en ] for meget. Prøv:

AL2 = Me.[Anden_ddfl_loge]
Avatar billede mugs Novice
14. maj 2009 - 13:08 #5
Kunne vi ikke lige få løsningen skitseret? Så andre kan lære af det.
Avatar billede comic123 Nybegynder
14. maj 2009 - 13:33 #6
Hej Her er hele min kode der virker


Private Sub Form_Close()
Dim dbs As Database
Dim Msg, Style, Title, Help, Ctxt, Response, MyString, AL2

Msg = "Er opdateringen korrekt?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Opdatering"
Help = "DEMO.HLP"
Ctxt = 1000

Response = MsgBox(Msg, Style, Title, Help, Ctxt)
  If Response = vbYes Then
  MyString = "Yes"
  AL2 = Me![Anden_ddfl_loge]
  If IsNull(AL2) And MyString = "YES" Then
            DoCmd.RunSQL "Insert Into medlemdata (DDFL_NR,LOGENR, DataRetdato, DataRetInit)" & _
                      "VALUES(" & DDFL_nr & "," & LogeNr & ",NOW(), Currentuser())"
  Else
    DoCmd.RunSQL "Insert Into medlemdata (DDFL_NR,LOGENR, DataRetdato, DataRetInit, anden_ddfl_loge)" & _
                  "VALUES(" & DDFL_nr & "," & LogeNr & ",NOW(),Currentuser()," & [Anden_ddfl_loge] & ")"
  End If

  If MyString = "No" Then
DoCmd.RunCommand acCmdUndo


End If
End If



Beep

End Sub
Avatar billede mugs Novice
14. maj 2009 - 13:45 #7
Var du ikke lidt hurtig til at tage dine egne point?
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