Comboboxen opslaan met loop

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Beste

Ik heb 6 regels op een formulier die alsvolgt zijn opgebouwd:
combobox gevolgd door 8 tekstvakken

Graag had ik dat deze regels opgeslagen worden in een tabel. Elke regel vormt een nieuw record. Dat op zich heb ik bereikt met een eenvoudige query.
Wat ik nu graag wil, is een code die de 6 combo's controleert op inhoud...
als de combobox niet is ingevuld, moet er ook niets opgeslagen worden.

bestaat er een loopje hiervoor?

Alvast bedankt!
 
ksnap niet wat je precies wilt maar kijk bij eigenschappen en gebeurtenis opbouwen
vervolgens kan je programmeren in vba ;)

Byee VRC
 
Ik heb de volgende code reeds opgebouwd:

Code:
Private Sub Knop66_Click()

If cmbBehandeling1 = "" then
Exit sub

else
On Error GoTo Err_Knop66_Click

    Dim stDocName As String

    stDocName = "Q_ToevoegenBehandeling1"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_Knop66_Click:
    Exit Sub

Err_Knop66_Click:
    MsgBox Err.Description
    Resume Exit_Knop66_Click

End if

End Sub

Deze werkt perfect, voor de 1ste regel.
Nu wil ik dat deze code zich ook herhaalt voor de volgende 5 regels...
het enige dat zou moeten veranderen is de cmbBehandeling en Q_ToevoegenBehandeling. Dit wordt dan nummer 2, 3, ...

ik hoop dat het duidelijker is?
 
zoiets...

Code:
Private Sub Knop66_Click()
Dim i As Integer
Dim stDocName As String

For i = 1 To 6
    If Me("cmbBehandeling" & i) <> "" Then
        stDocName = "Q_ToevoegenBehandeling" & i
        DoCmd.OpenQuery stDocName, acNormal, acEdit
    End If
Next i

End Sub
 
de code op zich werkt wel, waarvoor alvast weer mijn dank :)

heb voorlopig waarschuwingen laten opstaan, ik weet dat ik deze kan laten verdwijnen door set warnings False, maar gewoon om het te testen.

Hij zegt idd 6 keer dat er een rij toegevoegd zal worden maar geeft ook volgende foutmelding:


Microsoft Office Access heeft 1 veld(en) op Null ingesteld ten gevolge van een fout bij het converteren van het type en het volgende is niet toegevoegd:
0 records aan de tabel ten gevolge van sleutelconflicten, O records ten gevolge van vergrendelingsconflicten en 0 records ten gevolge van het strijdig zijn met de validatieregels.
Wilt u de query toch uitvoeren?


ik heb alles gecontroleerd, de notaties, invoermaskers etc staan zowel op het formulier als in de doeltabel hetzelfde... Zelfs als klik ik telkens dat hij toch moet toevoegen, wordt alleen de eerste regel toegevoegd...

iemand raad?
 
Voert hij wel de goede querynamen uit als je door de code heenstapt met F8?
 
Hij blijft hangen bij volgende regel:

DoCmd.OpenQuery stDocName, acNormal, acEdit
....
 
Misschien handig als je een ingepakt (rar/zip/7z) database post
 
Weet niet wat er bij jou aan de hand is, maar bij mij doet-ie het prima.
 
Daar gaan we weer :)
Als ik de "unieke code" niet invul, gaat het ook prima :)
Vul ik die unieke code wel in, zegt hij dat niet alle records ingevuld kunnen worden. Ik heb zelf wel al gezien dat ik geindexeerd had, duplicaten niet toegestaan. Dat kon dus ook niet werken... heb dit nu aangepast... zelfde probleem....
 
ok, nu 5 keer geprobeerd. Soms doet ie het wel, soms niet...
Kan er niet echt aan uit :)
 
Heb ik je al eerder gezegd geloof ik... Op het moment dat je een nieuwe patiënt opvoert, kun je er niet tegelijkertijd ziektebeelden er aanhangen. Er is een relatie nodig tussen de tabel [GegevensBehandeling] en [GegevensPatienten].

Overigens wordt de querymelding veroorzaakt doordat de Indexering van het veld [Unieke Code] in [GegevensBehandeling] verkeerd staat. Moet zijn: Ja (Duplicaten OK)
En ik zou het formulier f_GegevensInvoeren aan de tabel [GegevensPatienten] hangen. Dat lost je probleem verder op.
 
Laatst bewerkt:
Dus in principe, als ik er voor zorg dat de tabel GegevensPatienten ingevuld en opgeslagen wordt en daarnà pas de rest, zou het moeten lukken?
 
Dat is wel het idee, ja.
Dat kun je dus doen door het formulier aan de tabel Patientengegevens te hangen, of door extra code aan de knop Opslaan toe te voegen die de patientgegevens eerst toevoegt aan de tabel.
Door het formulier aan de tabel te hangen, kun je het formulier tevens gebruiken om patientgegevens te controleren/aan te vullen. Met een hoofdformulier kun je het invulformulier dan op twee manieren starten: in Invoermodus, of in Standaardmodus.
 
hmm, alles geprobeerd. Relaties verwijderd. Gegevens laten opslaan alvorens de combo's te laten overlopen.. het blijft mislukken. Ik zal dus iets anders moeten zoeken ;)

Toch al bedankt!
 
Niet zo snel opgeven :) Dat kan altijd nog!
Wat doet-ie niet goed, en wat eventueel wel? Krijg je bijvoorbeeld foutmeldingen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan