Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Access probleem met het automatisch updaten van velden*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een beetje aan het klooien met access om daar een muziek database in te maken, maar nu zit ik een beetje vast, want ik heb 2 problemen:

Probleem 1:
Ik heb een form gemaakt, waarin het de bedoeling is dat een artiest verwijderd kan worden, boven in het form, heb ik een menuutje zitten waarin de artiest geselecteerd moet worden, en daaronader moeten dan de gegevens van de artiest komen.
Als ik een artiest selecteer, dan komen de gegevens niet in de velden daaronder te staan.

Probleem 2:
In dat menuutje van probleem 1, zie ik wel de namen van de artiesten staan, maar ik zie ze in 3 kolommen, en ik zou dat graag als 1 geheel zien (zie afbeelding voor verduidelijking)
Dus in plaats van dat er
|Billy Ray | |Cyrus |
staat, wil ik graag dat er
Billy Ray Cyrus
staat.

Afbeeldingslocatie: http://img6.imageshack.us/img6/2260/probleemmi0.png (het is een directe link naar de afbeelding, dus er komen geen pop-ups)

Ik heb de database even geupload, voor het gavel dat ik nog wat ben vergeten te melden:
De database

Ik hoop dat iemand mij kan/ wil helpen.

mvg
Chris

Verwijderd

oplossing probleem 1 :
maak de form opnieuw (om een reden die ik verder niet heb nagekeken is de recordset leeg) en zorg bij openen form dat alle gegevens van de tabel kunnen bekeken worden. voeg daarna de unbound combolijst toe met in het afterupdate event de volgende code :
Visual Basic:
1
2
3
4
5
6
7
8
9
Private Sub List52_AfterUpdate()

    ' Find the record that matches the control.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[ID] = " & CStr(Nz(Me![List52], 0))
    Me.Bookmark = rs.Bookmark
End Sub
oplossing probleem 2 :
zet het aantal kolommen op 2 (eerste nog steeds verborgen) en wijzig de query naar onderstaand:
code:
1
SELECT Artiest.ID, Artiest.Voornaam & " " & Artiest.Tussenvoegsel & " " & Artiest.Achternaam FROM Artiest;
voeg eventueel functies aan deze query toe om overtollige spaties te verwijderen.

Verwijderd

Volgens mij leiden voor je eerste probleem meerdere wegen naar Rome. Wat ik altijd doe, is een selectiequery bouwen waarbij ik op alle records query uit dezelfde query/tabel waar je ook de gegevens voor je combobox vandaan haalt. In die specifieke query zet ik dan onder hetzelfde veld waar je combobox op is gebaseerd, het criterium [Forms]![naam van je formulier]![naam van je veld] neer.
In je formulier neem je dan bij 'Recordbron' die betreffende selectiequery op. Alle velden in je formulier waar je gegevens in wilt hebben adhv je keuze in de combobox, worden aangestuurd door die selectiequery (=besturingselementbron).
Je zult merken dat de records in deze velden niet automatisch worden ververst als je een nieuwe keuze maakt in je combobox. Twee manieren om dat op te lossen: 1. handmatig: Shift+F9; 2. automatisch: VBA: ga naar de eigenschappen van je combobox, ga naar gebeurtenis en klik bij "Bij wijzigen" op de drie puntjes helemaal rechts. Vul in de subroutine de volgende code in:

code:
1
me.requery


Ongetwijfeld zijn er andere (misschien betere?) methodes, maar dit werkt zeker ;)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op dinsdag 03 februari 2009 @ 20:46:
voeg eventueel functies aan deze query toe om overtollige spaties te verwijderen.
Ranzige handigheid met 0 garantie dat het blijft werken die gebruik maakt van het verschil tussen de & en de + operator mbt de samentrekking van null-waarden.
null + string = null, null & string = string
code:
1
(artiest.Voornaam + " ") & (artiest.Tussenvoegsel + " ")  & Artiest.Achternaam

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Of richt gewoon je tabel anders in - je kunt dat tussenvoegsel al weglaten als je dat gewoon in de voornaam meeneemt:

Berg, Jan van den;
Vries, Klaas de;

etc.

Verwijderd

Topicstarter
Bedankt voor de snelle reacties, ik ben begonnen met de oplossing van _heretic_ en die werkte, maar ik zie nu nog steeds een witte ruimte naar de naam, ik zie ongeveer dit:
|Bilyl Ray Cyrus| -------------- |

Ik heb de nieuwe versie online gezet (zie link eerste post), hopleijk heeft er ook iemand een oplossing daarvoor.

Ik kon helaas niet eruit komen wat jullie bedoelde, ik ben nou niet bepaald goed met dit soort dingen :o :o

Het werkt nu wel als ik er op klik via dat standaard menuutje, maar ik het via het switchboard probeer, krijg ik een foutmelding:
Run-time error '3021';

Geen huidig record.

Hoe krijg ik dit weg?

[ Voor 123% gewijzigd door Verwijderd op 04-02-2009 12:51 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op woensdag 04 februari 2009 @ 11:24:
Of richt gewoon je tabel anders in - je kunt dat tussenvoegsel al weglaten als je dat gewoon in de voornaam meeneemt:

Berg, Jan van den;
Vries, Klaas de;

etc.
offtopic:
Altijd handig als je een mailmerge moet doen: Beste Jan van den, etc

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Als de TS Billy Ray Cyrus echt wil gaan mailen, kan die indeling problematisch worden, ja... 8)7
Pagina: 1