Avatar billede runeklausen2 Nybegynder
16. august 2005 - 22:50 Der er 6 kommentarer og
1 løsning

hvis rs er null hvad så?

Idéen her er at jeg vælger fra en drop downliste, men hvis nu personen ikke står på dropdownlisten så bliver han oprettet, men så vil rs i dette tilfælde være null og access går direkte ind i VB.

Private Sub Kombinationsboks16_Exit(Cancel As Integer)
 
    Dim dB As DAO.Database
    Dim rs As DAO.Recordset
   
    Set dB = CurrentDb
    Set rs = dB.OpenRecordset("SELECT navn FROM medier where id = (select medieid from mkontakter where id = " & Me.kontaktid & ")")
    If rs = Null Then
    Else
    Me.medie = rs!navn
    End If
End Sub

jeg har denne til at oprette med

Private Sub Kombinationsboks16_NotInList(NewData As String, Response As Integer)
Dim prompt As String
DoCmd.SetWarnings False
Response = acDataErrContinue
prompt = "Kontakt personen findes ikke i listen, ønsker du at oprette ham/hende som freelancer?"
If MsgBox(prompt, vbYesNo, "Kontaktpersonen findes ikke!") = vbYes Then
DoCmd.RunSQL "INSERT INTO mkontakter (id, navn) VALUES (0,'" & NewData & "')"
Response = acDataErrAdded
End If
DoCmd.SetWarnings True

End Sub

Så på en eller anden måde handler det vel bare om at committe når køre NotInList?
Avatar billede terry Ekspert
17. august 2005 - 09:48 #1
Dont quite understand the problem!

Looking at the code for the NotInList event it looks OK appart from the fact that you are inserting 0 in the ID field. If the ID field is an autonumber then you should just insert navn and the autonumber will automatically get inserted.

What do you mean by this?
"...men hvis nu personen ikke står på dropdownlisten så bliver han oprettet, men så vil rs i dette tilfælde være null og access går direkte ind i VB."
Avatar billede runeklausen2 Nybegynder
17. august 2005 - 11:01 #2
If a person isn't in the dropdown he will be created. But for some reason rs in Exit is null, because he wasn't created untill after Exit is finished.

Maybe it's because i'm useing MySQL as backend, and it feels like the transaction in NotInList isn't committed before Exit is called and finish.

The 0 is for autonumber with MySQL.

Maybe I can write this: DoCmd.RunSQL("commit") ?
I'll try it later
Avatar billede terry Ekspert
17. august 2005 - 11:45 #3
Response = acDataErrAdded tells Access to add the record and update the combo. Can you see the new record in the combo? If so I think that the code in the Exit event is wrong!!
Avatar billede terry Ekspert
17. august 2005 - 11:54 #4
In the EXIT event you have

Set rs = dB.OpenRecordset("SELECT navn FROM medier where id = (select medieid from mkontakter where id = " & Me.kontaktid & ")")

How can you have a record in table medier with an ID which is the same as the medieid (which I suspect is your autonumber) you have just created in mkontakter?
Avatar billede runeklausen2 Nybegynder
17. august 2005 - 15:22 #5
Just my thought, the person is not bound to be a freelancer, my bad...
Avatar billede terry Ekspert
17. august 2005 - 15:27 #6
Can you give an example of your tables/relationships and also what data they contain? Maybe we can make some suggestions!
Avatar billede runeklausen2 Nybegynder
21. august 2005 - 17:21 #7
Problemet var at jeg ikke satte noget medieid på når personen var NotInList, derfor blev rs null
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