vba-access: NotInList probleem 2

Status
Niet open voor verdere reacties.

Jack Muijtjens

Gebruiker
Lid geworden
23 dec 2004
Berichten
16
Het aanvankelijk probleem (d.d. 23-12-2004 20.32) is dank zij het advies van Mark van Bree opgelost. Ik heb de code toegepast in mijn "testbestand" en het werkte. Waarvoor dank Mark.

Nu heb ik deze code toegepast in werkelijke adressenbestand (uiteraard met de noodzakelijke aanpassingen). Er ontstaat echter een nieuw probleem.

De tabellen zijn:

tbl_plaats (de opzoektabel) met de velden:
plaats_id (autonummering + sleutel)
plaatsnaam (tekst)

tbl_adressen met o.a. de velden:
id_adres (autonummering + sleutel)
plaats_id (numeriek en gekoppeld aan opzoektabel)


De programmacode is:

Private Sub plaats_id_NotInList(NewData As String, Response As Integer)

Dim strMessage As String
Dim dbstbl_adressen As Database
Dim rstTypes As DAO.Recordset

If MsgBox("Nieuwe plaatsnaam '" & NewData & "', toevoegen?", vbYesNo) = vbYes Then

Set dbstbl_adressen = CurrentDb
Set rstTypes = dbstbl_adressen.OpenRecordset("tbl_plaats")
rstTypes.AddNew
rst!plaatsnaam = NewData
rstTypes.Update
Responses = acDataErrAdded


Probleem:

Bij het ingeven van een naam die nog niet in de lijst voorkomt volgt de vraag:
Nieuwe plaatsnaam "..." toevoegen? ja / nee

Na drukken op "ja" volgt foutmelding:

"Fout 424 tijdens uitvoering
Object vereist"

In de programmacode is regel
"rst!plaatsnaam = NewData"
gemarkeerd.

Wat is hiervan de oorzaak c.q. hiervoor de oplossing.

Bij voorbaat hartelijk dank.

Jack Muijtjens
 
ik ken geen vba, maar wel VB...
Ik denk dat ik wel weet wat er mis is...
je kan met de !-functie objecten van (vb) een andere form oproepen, maar geen variablen:

form1!text1.text = "blabla"
gaat
maar form1!variable1 = "blabla" niet

ben ik juist?:P
 
of heb je gewoon een typfout gemaakt en moet dat uitroepteken gewoon weg:P
edit: nope, dat zal wel niet:P
 
Werk al een paar jaar niet meer met DAO, maar met de opvolger daarvan (ADO).

Volgens mij is de syntax in de regel waar je code op blijft hangen: rst.fields("Plaatsnaam") = NewData

Anders kun je i.p.v. een recordset ook gebruik maken van SQL, het wordt dan zoiets als:

Docmd.runSQL "INSERT INTO tbl_plaats(plaatsnaam) VALUES '" & NewData & "';"


Grtz,
 
Het probleem is opgelost. Het was inderdaad een typefout.

De tekst in betreffende code-regel moet zijn:

rstTypes!plaats = NewData

i.p.v.

rst!plaatsnaam = NewData

Dus met de toevoeging van het woord "Types".
Verder moet de veldnaam "plaats" zijn i.p.v. maar "plaatsnaam".

Bovendien moet het woord "responses" in de laatste regel zonder eind-s worden getypt. Dus "response".

Bedankt Arre en Mark voor jullie reacties.

Groetjes,

Jack
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan