Automatisch vullen 2 veld in invulformulier

Status
Niet open voor verdere reacties.

sjobbels

Gebruiker
Lid geworden
11 dec 2008
Berichten
145
Hoi,

Ik heb een query gemaakt waarin een kolom SalesID en een kolom bedrijfsnaam staan.
In een apart invulformulier voor bezoekverslagen wil ik dat in het eerste invulveld de SalesID ingevuld wordt en dat het 2e veld "bedrijfsnaam" dan automatisch op de juiste manier gevuld wordt. Is dit mogelijk?

Alvast bedankt voor de moeite!

grt sjobbels
 
Het is gelukt, echter als ik terug ga naar de tabel achter dit invulformulier wordt wel de Salesid hierin gevuld maar ik zie de bedrijfsnaam niet terug in de tabel.

Hoe krijg ik dit voorelkaar?

bedankt
 
Het is gelukt, echter als ik terug ga naar de tabel achter dit invulformulier wordt wel de Salesid hierin gevuld maar ik zie de bedrijfsnaam niet terug in de tabel.

Hoe krijg ik dit voorelkaar?

bedankt

ik ben er al achter gekomen via een ander forum: Bovenstaand is unbound textbox...en het moet via een bound textbox. zie hieronder:

Bound Textbox
We'll use the same setup for the combo box as described in the "Unbound Textbox" example above. The difference in this situation is that an expression cannot be used as the Control Source for the textbox. Instead, we use VBA code on the AfterUpdate event of the cboPersonID combo box to place the desired value into the txtPersonName textbox.


' ***** Code Start *****
Private Sub cboPersonID_AfterUpdate()
Me.txtPersonName.Value = Me.cboPersonID.Column(1)
End Sub
' ***** Code End *****
 
Even een vervolg op bovenstaande vraag.

Mijn database is helaas te groot om te plaatsen.
Ik heb nu een klein probleem. Ik heb een tabel met Contactpersonen en een tabel met Bezoekverslagen. Deze hebben beide een identieke code "CSid".
Ik heb het nu wel zover dat ik via een query en onderstaande code automatisch een aantal velden laat vullen:

Private Sub cboAanhef_AfterUpdate()
Me.txtVoorletters.Value = Me.cboAanhef.Column(4)
Me.txtVoornaam.Value = Me.cboAanhef.Column(5)
Me.txtAchternaam.Value = Me.cboAanhef.Column(6)
Me.txtFunctie.Value = Me.cboAanhef.Column(7)
Me.txtTelefoonnummer.Value = Me.cboAanhef.Column(8)
Me.txtE_mail.Value = Me.cboAanhef.Column(9)
Me.txtStatus.Value = Me.cboAanhef.Column(10)
End Sub

In het begin van het invulformulier staat de "CSid" code weergegeven, echter ik krijg nu alle contactpersonen die in de tabel staan te zien, terwijl ik alleen de contactpersonen van bijvoorbeeld CS00001 (= "CSid") Klant X wil laten weergeven.
Kan ik hiervoor een formule in de query toevoegen of is dit niet mogelijk?

Thanks
 
Heb je de twee tabellen aan elkaar gekoppeld op het gezamelijke veld? En hoe ziet het formulier er uit? Is het een enkelvoudig formulier, of een doorlopend formulier?
 
Voor het formulier heb ik geen koppeling gemaakt. Deze is gebasseerd op 1 tabel. Het formulier bestaat wel uit een hoofdformulier en een subformulier ivm de zoekopties die ik hierin heb gebouwd.
De query die ik gebruik om de velden te laten vullen bestaat wel uit een gekoppelde query.
Zie bijlage voor het formulier. Ik hoop dat je me verder kunt helpen.

grt
 

Bijlagen

  • bezoek.jpg
    bezoek.jpg
    98,1 KB · Weergaven: 87
Laatst bewerkt:
Ik zie in de afbeelding niet goed hoe je hoofd- en subformulier zijn gemaakt. Is het de bedoeling dat de gegevens in het subformulier worden gekoppeld aan het record in het hoofdformulier? (Lijkt mij logisch... ;) )
Kijk dan eens hoe hoofd- en subformulier zijn gekoppeld, want dat moet uiteraard ook kloppen.
 
In het subformulier staan alle invulvelden waaronder ook de CSid. In het hoofdformulier waaraan het subformulier gekoppeld is staat alleen een zoekfunctie op naam bedrijf en op salesmanager. Dus we hoeven het hoofdformulier is niet belangrijk deze is alleen gecreerd voor de zoekfunctie en uiteindelijk als totaal formulier.
 
Gaan we weer terug naar de hoofdvraag: je hebt dus blijkbaar op het niet-gebonden hoofdformulier, dat eigenlijk geen hoofdformulier is of hoeft te zijn, twee keuzelijsten gezet voor de contactpersonen. De keuzelijst laat alle records zien uit de tabel Contacts, terwijl je het liefst alleen de contactpersonen/bedrijven wilt zien die ook in de tabel Bezoekverslagen staan. Klopt dit beeld?
 
Dit beeld klopt bijna... sorry voor mijn onduidelijkheid. Ik heb in de bijlage een word bestand met 4 plaatjes meegestuurd en iets meer uitleg.
 

Bijlagen

Om te beginnen zou ik de structuur van het formulier terugbrengen tot één enkel formulier. Je gebruikt het hoofdformulier nu voor de keuzelijsten, en het subformulier voor de verdere gegevens. Dit maakt het formulier nodeloos ingewikkeld.
Gebruik kortom alleen het subformulier als zelfstandig formulier, en zet de opzoeklijsten uit het voormalige hoofdformulier in de koptekst van het (voorheen) subformulier, dan heb je dezelfde werking, en een veel simpeler formulier. Ook is het dan veel makkelijker om tussen formulierelementen te schakelen, en te verwijzen naar objecten op het formulier.
Da's één.

Voor het belangrijkste probleem is de oplossing ook simpel: maak de keuzelijst voor de CP afhankelijk van de keuzelijst Bedrijf. De keuzelijst voor de C'P's moet worden opgebouwd nadat er een bedrijf is gekozen. Je zult dit met VBA moeten doen, omdat de lijst moet worden bijgewerkt als je een bedrijf kiest.
Ik heb vandaag nog een bestandje gepost waarin dat is uitgelegd. Zie Invulformulier
De code ziet er dan ongeveer zo uit:

Code:
    sBedrijf = Me.cboBedrijf.Value
    strSQL = "Select * From tblContactpersoon " & vbCrLf
    strSQL = strSQL & "Where CSid=" & sBedrijf
    Me.cboCP.ControlSourse = strSQL
    Me.cboCP.Requery
Kan uiteraard nog anders, want je zult ongetwijfeld andere namen gebruiken...
 
Laatst bewerkt:
thanks voor het antwoord, ik ga ermee aan de slag, maar aangezien jouw voorbeeld met unbound textbox werkt, en ik in mijn invulformulier met bound textboxen werk vraag ik me af of dit dan werkt. De data moet nml ook opgeslagen worden in de tabel bezoekverslagen.

Nogmaals bedankt!:D
 
beste OctaFish,

Ik heb het vanmiddag nog veelvuldig geprobeerd, maar ik kom er niet uit. Ik heb de database snel in het klein nagebouwd. Met 1 simpel formulier, Na het invullen van de KlantID worden automatisch de 2 volgende velden "Klantnaam" en "SalesManager" ingevuld.
Bij CP-Aanhef heb je ook een keuze waar de volgende velden automatisch worden gevuld, maar zoals ik in de vorige posts heb aangegeven wil ik bijvoorbeeld als ik in het begin Klant A invul, bij CP-Aanhef alleen alle contactpersonen van klant A zien.

zie bijlage.

Alvast grote dank!
 

Bijlagen

Zal er een blik op werpen....
 
Als je het voorbeeld hebt opgezet als je echte db, heb je een klein probleem; in het voorbeeld gebruik je voor het veld KlantID in de tabel Bedrijf een autonumeriek veld, maar in de andere tabellen is het een tekstveld. Dat betekent, dat je ze nooit goed aan elkaar kunt koppelen. Ik heb dat dus maar aangepast in de proefdb.

In de nieuwe versie werkt e.e.a. volgens mij wel zoals je het wilt hebben. De truc daarbij is, dat je m.b.v. de keuzelijst Bedrijf een query opstelt, die je met VBA toewijst aan de CP kontakt keuzelijst. Daarbij maakt het niet zoveel uit of je een niet-gebonden formulier gebruikt of een formulier met een koppeling naar tabel of query. In het laatste geval ben je wel verplicht om de overige waarden toe te kennen op de manier die je verder prima hebt toegepast :thumb:
Bekijk het maar eens....
 

Bijlagen

@ Octafish,

Ik heb nog een vraag die dit onderwerp betreft.

Ik heb een tabel met hoofdkantoren en een tabel met dochterondernemingen (van deze hoofdkantoren) inclusief NAW gegevens, deze zijn via een id aan elkaar gekoppeld.

Nu heb ik een tabel met contactpersonen gemaakt waarin ook de NAW gegevens staan.
Van deze tabel heb ik een formulier gemaakt, hierin staat ook een combobox met de keuzemogelijkheid: Hoofdkantoor ; Dochter. Ik vraag me af of het mogelijk is om met 2 query's en een afterupdate code, dus na keuze van bijvoorbeeld hoofdkantoor de adresvelden automatisch te laten vullen met de gegevens uit de query hoofdkantoor; en zo natuurlijk als iemand 'dochter' kiest dat de velden automatisch gevuld worden met de gegevens uit de query van dochterondernemingen.

Is dit mogelijk??

thanks
 
Als ik denk dat ik snap wat je bedoelt, dan denk ik van wel.... Je tabel Hoofdkantoor heeft dan neem ik aan zijn eigen adresgegevens, en de dochters hebben ook hun eigen adres gegevens...
Het hangt er van af hoe je aan de code voor het hoofdkantoor komt. En dat hangt denk ik af van de manier waarop je de CP's koppelt aan hoofdkantoor of dochter. De keuzelijst met Hoofdkantoor/Dochter gebruik je dan om te bepalen of je het BedrijfID uit de hoofdkantoor tabel of uit de dochtertabel haalt, waarna je de keuzelijst met adressen vult. De adresgegevens kun je koppelen aan de keuzelijst Kantoor, want die vul je de ene keer met de gegevens van het hoofdkantoor, en de andere keer met gegevens van de filialen.
It can be done!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan