Ik heb een heel vaag probleem en ik weet niet goed hoe ik dit op moet lossen. Ik zal proberen het zo duidelijk mogelijk te omschrijven.
Ik heb een Acces XP database. Daarin heb ik een VBA programma geschreven. In dit programma komen meerdere keuzelijsten voor. Waar ik het probleem nu geconstatteerd heb, zie ik een lijst met artikelen. Wanneer ik nu een nieuw artikel invoer waar een komma in de omschrijving voorkomt, dan wordt het laatste artikel in de lijst bovenaan de keuzelijst weergegeven (ik sorteer op omschrijving, dus alfabetische volgorde is logisch toch?) Als ik nu het eerste artikel in de lijst aanklik wordt het tweede artikel weergegeven in de details. Ik zal ter verduidelijking een stuk van de code voor het vullen van de lijst en een schermafdruk van mijn formulier in access toevoegen.
'--------------------------------------------------------------------------------------------------------
'---------------------------------------------------------------------------------------------------------

Weet iemand wat ik hier fout doe?
alvast bedankt
Ik heb een Acces XP database. Daarin heb ik een VBA programma geschreven. In dit programma komen meerdere keuzelijsten voor. Waar ik het probleem nu geconstatteerd heb, zie ik een lijst met artikelen. Wanneer ik nu een nieuw artikel invoer waar een komma in de omschrijving voorkomt, dan wordt het laatste artikel in de lijst bovenaan de keuzelijst weergegeven (ik sorteer op omschrijving, dus alfabetische volgorde is logisch toch?) Als ik nu het eerste artikel in de lijst aanklik wordt het tweede artikel weergegeven in de details. Ik zal ter verduidelijking een stuk van de code voor het vullen van de lijst en een schermafdruk van mijn formulier in access toevoegen.
'--------------------------------------------------------------------------------------------------------
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| Private Sub Zoeken()
'------ Maak de query aan en vul de recordset met de gevraagde gegevens ------
Dim stFilter As String
'------ Als hardware en software geselecteerd zijn, of er geen selectie is gemaakt ------
ZoekCriteria1.SetFocus
If IsNull(Groepsvak_Filter.Value) Or Groepsvak_Filter.Value = 3 Then
stSQL = "SELECT artikelid, omschrijving, soortartikel FROM artikelen WHERE omschrijving LIKE '" & ZoekCriteria1.Text & "%' ORDER BY omschrijving"
Else
'------ Als hardware geselecteerd is ------
If Groepsvak_Filter.Value = 1 Then
stFilter = 1
stSQL = "SELECT artikelid, omschrijving, soortartikel FROM artikelen WHERE omschrijving LIKE '" & ZoekCriteria1.Text & "%' AND soortartikel = " & stFilter & " ORDER BY omschrijving"
Else
'------ Als software geselecteerd is ------
If Groepsvak_Filter.Value = 2 Then
stFilter = 2
stSQL = "SELECT artikelid, omschrijving, soortartikel FROM artikelen WHERE omschrijving LIKE '" & ZoekCriteria1.Text & "%' AND soortartikel = " & stFilter & " ORDER BY omschrijving"
End If
End If
End If
rsArtikelen.Open stSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'------ Maak de lijst met gevonden artikelen leeg ------
GevondenArtikelenLeegMaken
'------ Bekijk het resultaat van de query------
If rsArtikelen.RecordCount <> 0 Then
'------ Vul de matrix met gegevens uit de database ------
vRecordTotaal = rsArtikelen.RecordCount
vData = rsArtikelen.GetRows(vRecordTotaal)
'------ Ga naar het eerste record in de query ------
rsArtikelen.MoveFirst
'------ Vul de lijst met gevonden artikelen ------
VulLijstMetGevondenArtikelen
Else
stMsg = "Er zijn geen artikelen gevonden die voldoen aan de door u opgegeven zoekcriteria. Probeer het opnieuw."
iKnoppen = vbOKOnly
stMsgTitel = "Zoekresultaten"
iResultaat = MsgBox(stMsg, iKnoppen, stMsgTitel)
End If
'------ Sluit de geopende recordset af (geeft geheugen vrij)------
rsArtikelen.Close
End Sub
Private Sub VulLijstMetGevondenArtikelen()
Dim rsSerienummer As New ADODB.Recordset
Dim stTabel As String
While Not rsArtikelen.EOF
If rsArtikelen.Fields("soortartikel") = 1 Then
stTabel = "Hardware"
Else
stTabel = "Software"
End If
stSQL = "SELECT serienummer FROM " & stTabel & " WHERE artikelid = " & rsArtikelen.Fields("Artikelid")
rsSerienummer.Open stSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rsSerienummer.RecordCount = 1 Then
Keuzelijst_GevondenArtikelen.AddItem rsArtikelen.Fields("omschrijving").Value & " - " & rsSerienummer.Fields("serienummer").Value
Else
Keuzelijst_GevondenArtikelen.AddItem rsArtikelen.Fields("Omschrijving").Value
End If
rsSerienummer.Close
rsArtikelen.MoveNext
Wend
End Sub |
'---------------------------------------------------------------------------------------------------------

Weet iemand wat ik hier fout doe?
alvast bedankt
[ Voor 7% gewijzigd door jobo op 04-11-2003 16:49 . Reden: aanpassing code blok en toevoeging screenshot ]
need more coffee!!!