2
Er zijn 9 reacties in dit onderwerp
#1
Geplaatst op 02 mei 2022 - 12:04
Hallo,
Ik wil via een textbox items naar een listbox overbrengen maar het mogen geen dubbele items bevatten.
Vb : ik geef in textbox "test"in en bij een tweede poging zou hij geen naam met "test" mogen toevoegen maar het programma moet wel verder gaan. Ik hoef geen messagebox te zien , gezien dit in de achtergrond loopt.
Voer het toevoegen van de tekst gebruik ik volgende code
List1.AddItem (Text1.Text) wat op zich werkt , maar laat wel dubbele items toe
Heb wat afgezocht maar geraak er niet uit.
Ik wil via een textbox items naar een listbox overbrengen maar het mogen geen dubbele items bevatten.
Vb : ik geef in textbox "test"in en bij een tweede poging zou hij geen naam met "test" mogen toevoegen maar het programma moet wel verder gaan. Ik hoef geen messagebox te zien , gezien dit in de achtergrond loopt.
Voer het toevoegen van de tekst gebruik ik volgende code
List1.AddItem (Text1.Text) wat op zich werkt , maar laat wel dubbele items toe
Heb wat afgezocht maar geraak er niet uit.
#2
Geplaatst op 02 mei 2022 - 13:42
Dit is in tussentijd gelukt met volgende code:
For x = 0 To Form1.List1.ListCount - 1
If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Form2.Label2.Caption)) Then
MsgBox "Item Already Exists"
Exit Sub
End If
Next
Form1.List1.AddItem Form2.Label2.Caption
Text1 = ""
Het volgende probl is dat ik na de messagebox op OK kan drukken maar het programma loopt niet verder en ik weet niet hoe ik dit moet oplossen ?
De code die achter deze handeling nog moet gebeuren is;
If Text2.Text = "" Or Text2.Text = "0" Then
MsgBox ("Opgelet, geen saldo van laatste bestelling !") & vbNewLine & ("Keer terug via ANNULEREN en scan de kaart opnieuw") & vbNewLine & ("Als je wilt afrekenen, druk op de juiste inkomknop en reken af.") & vbNewLine & ("Bij problemen vraag achter Erna of Mario aub"), vbInformation, "DANCETIME"
Form1.Text3 = ""
Form1.Text3.SetFocus
Form1.Command29.Visible = False
Else
Dim filenum As String
filenum = FreeFile
Open "C:\DanceTime\Regfiles\Kaarten\" & (Form1.Text3.Text) & ".txt" For Output As #filenum 'inlezen kaartnummer
Text4.Text = (Val(Text2.Text)) + CDbl(Val(Text1.Text))
Print #filenum, (Text4.Text)
Close #filenum
'hier wordt per datum en per kaart bijgehouden welke dranken en prijs (voor eventuele probl in systeem met optellen)
Open "C:\DanceTime\Regfiles\Overzicht_drank\ " & (Form1.Text3.Text) & " - " & Format(Date, "dd-mm-yyyy") & ".txt" For Append As #filenum 'enkel datum
Print #filenum, (Form1.Text1.Text) + (Form1.Text2.Text)
Print #filenum, "Totaal: " & (Form1.Text2.Text)
Close #filenum
'hier wordt per datum en per kaart totaal saldo dranken bijgehouden (voor eventuele probl in systeem met optellen)
Open "C:\DanceTime\Regfiles\Saldo_Overzicht_drank\ " & (Form1.Text3.Text) & " - " & Format(Date, "dd-mm-yyyy") & ".txt" For Append As #filenum 'enkel datum
Print #filenum, (Form1.Text4.Text)
Close #filenum
'hier zal bijgehouden worden wie dranken besteld heeft per dag om nadien te vergelijken met betaalde saldo's (controle openstaande saldo's)
Open "C:\DanceTime\Regfiles\Overzicht\Personendrankafname\ " & (Form1.Text3.Text) & " - " & Format(Date, "dd-mm-yyyy") & ".txt" For Output As #filenum 'enkel datum
Print #filenum, (Form1.Text3.Text)
Close #filenum
filenum = FreeFile
Open "C:\DanceTime\Regfiles\Overzicht\Details\Volledige\" & (Form1.Text3.Text) & ".txt" For Output As #filenum 'volledige bestelling
Write #filenum, ("--------------------------" & vbCrLf & (Form1.Text1.Text) + (Text7.Text))
Close #filenum
Open "C:\DanceTime\Regfiles\Overzicht\Details\Laatste\" & (Form1.Text3.Text) & ".txt" For Output As #filenum 'laatste bestelling
Write #filenum, (Form1.Text1.Text)
Close #filenum
'voor Ticketafdruk ter controle
Open "C:\DanceTime\Regfiles\Overzicht\Personendrankafname\drankafname " & ".txt" For Append As #filenum
Print #filenum, (Form1.Text3.Text)
Close #filenum
Form1.Text1.Text = "" 'omschrijving
Form1.Label7.Caption = "0"
Form1.Text2.Text = "" 'prijs
Form1.Text3.Text = "" 'kaartnummer
Form1.Text4.Text = "" 'saldo leeg maken
Form1.Text3.SetFocus
Form1.Command29.Visible = False
Form1.Command43.Visible = False 'toon keyboard
'het aanmaken van ticket
filenum = FreeFile
Open "C:\DanceTime\Regfiles\Tickets\Ticket " & ".txt" For Output As #filenum 'enkel datum
Print #filenum,
Print #filenum, Tab(2); (Label2.Caption) 'namen kaarthouders
Print #filenum,
Print #filenum, Tab(2); "---------------"
Print #filenum, Tab(2); "Bestelling:"
Print #filenum, Tab(2); "---------------"
Print #filenum, Tab(1); (Form2.Text5.Text) '(Form2.Label15.Caption) -> nadien verwijderen
Print #filenum,
Print #filenum, Tab(2); "---------------"
Print #filenum, Tab(2); "Aantal: " & Label18.Caption
Print #filenum, Tab(2); "---------------"
Print #filenum,
Print #filenum, Tab(2); "==============="
Print #filenum, Tab(2); "Bedrag: " & (Form2.Label16.Caption) & " €" 'Totaal: ...
Print #filenum, Tab(2); "==============="
Print #filenum,
Print #filenum, Tab(2); "Time :" & (Time$)
Print #filenum, Tab(2); "Date :" & Format(Date, "D Mmmm Yyyy")
Print #filenum,
Close #filenum
Form1.Label8.Caption = "Selecteer drank(en) of scan voor af te rekenen." 'melding op scherm wat te doen
Dim yesno As VbMsgBoxResult
yesno = MsgBox("Ticket afdrukken?", vbQuestion + vbYesNo, "Print")
If yesno = vbYes Then
'printen van logo
Dim stdPicture As stdPicture
Set stdPicture = LoadPicture("C:\DanceTime\Regfiles\DTlogoticket.jpg")
Printer.PaintPicture stdPicture, 0, 0
Set stdPicture = Nothing
'Printer.EndDoc 'terug aan indien na logo niet meer moet printen, in geval van nu moet logo en text printen en dan end doc
'Het aanmaken van een barcode voor ticket
Printer.Font.Name = "Bar-Code 39"
Printer.Font.Size = 35
Printer.Print 'lege regel
Printer.Print 'lege regel
Printer.Print Tab(2); "*" + Label10.Caption + "*" 'de* zijn nodig voor de start en eind te bepalen van de code anders scant deze niet
Printer.Font.Name = "Courier"
Printer.Font.Size = 14
'printen van inhoud (bestelde dranken)
Dim Tekst As String
Open "C:\DanceTime\Regfiles\Tickets\Ticket " & ".txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Tekst
Printer.FontSize = 12
Printer.Print Tekst
Loop
Printer.EndDoc
Close #1
End If
End If
Unload Me
For x = 0 To Form1.List1.ListCount - 1
If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Form2.Label2.Caption)) Then
MsgBox "Item Already Exists"
Exit Sub
End If
Next
Form1.List1.AddItem Form2.Label2.Caption
Text1 = ""
Het volgende probl is dat ik na de messagebox op OK kan drukken maar het programma loopt niet verder en ik weet niet hoe ik dit moet oplossen ?
De code die achter deze handeling nog moet gebeuren is;
If Text2.Text = "" Or Text2.Text = "0" Then
MsgBox ("Opgelet, geen saldo van laatste bestelling !") & vbNewLine & ("Keer terug via ANNULEREN en scan de kaart opnieuw") & vbNewLine & ("Als je wilt afrekenen, druk op de juiste inkomknop en reken af.") & vbNewLine & ("Bij problemen vraag achter Erna of Mario aub"), vbInformation, "DANCETIME"
Form1.Text3 = ""
Form1.Text3.SetFocus
Form1.Command29.Visible = False
Else
Dim filenum As String
filenum = FreeFile
Open "C:\DanceTime\Regfiles\Kaarten\" & (Form1.Text3.Text) & ".txt" For Output As #filenum 'inlezen kaartnummer
Text4.Text = (Val(Text2.Text)) + CDbl(Val(Text1.Text))
Print #filenum, (Text4.Text)
Close #filenum
'hier wordt per datum en per kaart bijgehouden welke dranken en prijs (voor eventuele probl in systeem met optellen)
Open "C:\DanceTime\Regfiles\Overzicht_drank\ " & (Form1.Text3.Text) & " - " & Format(Date, "dd-mm-yyyy") & ".txt" For Append As #filenum 'enkel datum
Print #filenum, (Form1.Text1.Text) + (Form1.Text2.Text)
Print #filenum, "Totaal: " & (Form1.Text2.Text)
Close #filenum
'hier wordt per datum en per kaart totaal saldo dranken bijgehouden (voor eventuele probl in systeem met optellen)
Open "C:\DanceTime\Regfiles\Saldo_Overzicht_drank\ " & (Form1.Text3.Text) & " - " & Format(Date, "dd-mm-yyyy") & ".txt" For Append As #filenum 'enkel datum
Print #filenum, (Form1.Text4.Text)
Close #filenum
'hier zal bijgehouden worden wie dranken besteld heeft per dag om nadien te vergelijken met betaalde saldo's (controle openstaande saldo's)
Open "C:\DanceTime\Regfiles\Overzicht\Personendrankafname\ " & (Form1.Text3.Text) & " - " & Format(Date, "dd-mm-yyyy") & ".txt" For Output As #filenum 'enkel datum
Print #filenum, (Form1.Text3.Text)
Close #filenum
filenum = FreeFile
Open "C:\DanceTime\Regfiles\Overzicht\Details\Volledige\" & (Form1.Text3.Text) & ".txt" For Output As #filenum 'volledige bestelling
Write #filenum, ("--------------------------" & vbCrLf & (Form1.Text1.Text) + (Text7.Text))
Close #filenum
Open "C:\DanceTime\Regfiles\Overzicht\Details\Laatste\" & (Form1.Text3.Text) & ".txt" For Output As #filenum 'laatste bestelling
Write #filenum, (Form1.Text1.Text)
Close #filenum
'voor Ticketafdruk ter controle
Open "C:\DanceTime\Regfiles\Overzicht\Personendrankafname\drankafname " & ".txt" For Append As #filenum
Print #filenum, (Form1.Text3.Text)
Close #filenum
Form1.Text1.Text = "" 'omschrijving
Form1.Label7.Caption = "0"
Form1.Text2.Text = "" 'prijs
Form1.Text3.Text = "" 'kaartnummer
Form1.Text4.Text = "" 'saldo leeg maken
Form1.Text3.SetFocus
Form1.Command29.Visible = False
Form1.Command43.Visible = False 'toon keyboard
'het aanmaken van ticket
filenum = FreeFile
Open "C:\DanceTime\Regfiles\Tickets\Ticket " & ".txt" For Output As #filenum 'enkel datum
Print #filenum,
Print #filenum, Tab(2); (Label2.Caption) 'namen kaarthouders
Print #filenum,
Print #filenum, Tab(2); "---------------"
Print #filenum, Tab(2); "Bestelling:"
Print #filenum, Tab(2); "---------------"
Print #filenum, Tab(1); (Form2.Text5.Text) '(Form2.Label15.Caption) -> nadien verwijderen
Print #filenum,
Print #filenum, Tab(2); "---------------"
Print #filenum, Tab(2); "Aantal: " & Label18.Caption
Print #filenum, Tab(2); "---------------"
Print #filenum,
Print #filenum, Tab(2); "==============="
Print #filenum, Tab(2); "Bedrag: " & (Form2.Label16.Caption) & " €" 'Totaal: ...
Print #filenum, Tab(2); "==============="
Print #filenum,
Print #filenum, Tab(2); "Time :" & (Time$)
Print #filenum, Tab(2); "Date :" & Format(Date, "D Mmmm Yyyy")
Print #filenum,
Close #filenum
Form1.Label8.Caption = "Selecteer drank(en) of scan voor af te rekenen." 'melding op scherm wat te doen
Dim yesno As VbMsgBoxResult
yesno = MsgBox("Ticket afdrukken?", vbQuestion + vbYesNo, "Print")
If yesno = vbYes Then
'printen van logo
Dim stdPicture As stdPicture
Set stdPicture = LoadPicture("C:\DanceTime\Regfiles\DTlogoticket.jpg")
Printer.PaintPicture stdPicture, 0, 0
Set stdPicture = Nothing
'Printer.EndDoc 'terug aan indien na logo niet meer moet printen, in geval van nu moet logo en text printen en dan end doc
'Het aanmaken van een barcode voor ticket
Printer.Font.Name = "Bar-Code 39"
Printer.Font.Size = 35
Printer.Print 'lege regel
Printer.Print 'lege regel
Printer.Print Tab(2); "*" + Label10.Caption + "*" 'de* zijn nodig voor de start en eind te bepalen van de code anders scant deze niet
Printer.Font.Name = "Courier"
Printer.Font.Size = 14
'printen van inhoud (bestelde dranken)
Dim Tekst As String
Open "C:\DanceTime\Regfiles\Tickets\Ticket " & ".txt" For Input As #1
Do While Not EOF(1)
Line Input #1, Tekst
Printer.FontSize = 12
Printer.Print Tekst
Loop
Printer.EndDoc
Close #1
End If
End If
Unload Me
#3
Geplaatst op 15 mei 2022 - 20:37
kun je dat tussen vb-tags zetten, dan word het mooi geformatteerd.
In de plaats van Exit sub is het exit for, de exit sub springt (zoals je ziet direct naar het einde van de sub zonder nog 1 regel code uit te voeren terwijl je alleen een exit for wilt doen.
In de plaats van Exit sub is het exit for, de exit sub springt (zoals je ziet direct naar het einde van de sub zonder nog 1 regel code uit te voeren terwijl je alleen een exit for wilt doen.
#4
Geplaatst op 19 mei 2022 - 11:29
Bedankt voor je uitleg.
Hij gaat inderdaad wel verder met Exit For maar voegt toch dubbele items in de listbox
De bedoeling is dat het systeem geen dubbele items in listbox mag toevoegen maar wel verder moet gaan voor de rest van de code te laten uitvoeren
Met Exit For gaat het idd wel verder maar voegt wel meermaals dezelfde item in de listbox
Dim filenum As String
filenum = FreeFile
For x = 0 To Form1.List1.ListCount - 1
If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Label2.Caption)) Then
''MsgBox "Item Already Exists"
Exit For
End If
Next
Form1.List1.AddItem Form2.Label2.Caption
Mis ik iets hier, want kom er niet meer uit
Hij gaat inderdaad wel verder met Exit For maar voegt toch dubbele items in de listbox
De bedoeling is dat het systeem geen dubbele items in listbox mag toevoegen maar wel verder moet gaan voor de rest van de code te laten uitvoeren
Met Exit For gaat het idd wel verder maar voegt wel meermaals dezelfde item in de listbox
Dim filenum As String
filenum = FreeFile
For x = 0 To Form1.List1.ListCount - 1
If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Label2.Caption)) Then
''MsgBox "Item Already Exists"
Exit For
End If
Next
Form1.List1.AddItem Form2.Label2.Caption
Mis ik iets hier, want kom er niet meer uit
#5
Geplaatst op 19 mei 2022 - 19:16
Gebruik de VB- BB-tag om je code, dat maakt het lezen van code gemakkelijker
Steek die for loop in een sub en roep die sub aan
Visual Basic Code:
dan kun je in de hoofd sub the for verwijderen en direct de CheckInList() sub aanroepen
er zijn nog mogelijkheden
Check doen waar de x is gebleven
Visual Basic Code:
Steek die for loop in een sub en roep die sub aan
Visual Basic Code:
Private sub CheckInList() For x = 0 To Form1.List1.ListCount - 1 If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Form2.Label2.Caption)) Then MsgBox "Item Already Exists" Exit Sub End If Next Form1.List1.AddItem Form2.Label2.Caption end sub
dan kun je in de hoofd sub the for verwijderen en direct de CheckInList() sub aanroepen
er zijn nog mogelijkheden
Check doen waar de x is gebleven
Visual Basic Code:
Dim filenum As String filenum = FreeFile dim x as interger =0 For x = 0 To Form1.List1.ListCount - 1 If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Label2.Caption)) Then MsgBox "Item Already Exists" Exit For End If Next if x>=Form1.List1.ListCount then Form1.List1.AddItem Form2.Label2.Caption
#6
Geplaatst op 20 mei 2022 - 11:21
Sorry weet niet hoe de vb tags te gebruiken.
Dim x as integer=0 geeft een foutmelding (integer is wel verkeerd geschreven in uw voorbeeld) maar ook met
de juiste spelling krijg ik volgende error
Visual Basic Code:
Dim x as integer=0 geeft een foutmelding (integer is wel verkeerd geschreven in uw voorbeeld) maar ook met
de juiste spelling krijg ik volgende error
Visual Basic Code:
Dim filenum As String filenum = FreeFile Dim x As Integer =0 'hier gaat het fout For x = 0 To Form1.List1.ListCount - 1 If UCase(Trim(Form1.List1.List(x))) = UCase(Trim(Label2.Caption)) Then MsgBox "Item Already Exists" Exit For End If Next If x >= Form1.List1.ListCount Then Form1.List1.AddItem Form2.Label2.Caption Open "C:\DanceTime\Regfiles\List1\List1.txt" For Append As #1 Print #filenum, (Form2.Label2.Caption) & vbCrLf Close #1
#7
Geplaatst op 20 mei 2022 - 13:07
Als ik Dim x AsInteger doe gaat het ook , alleen zit ik met het volgend probleem bij het wegschrijven
naar de file zitten er toch dubbele items in
In de listbox zitten geen dubbele items maar wel in de weggeschreven file ?
Visual Basic Code:
Dus als ik mijn tekstbestand open zie ik volgende erin:
naar de file zitten er toch dubbele items in
In de listbox zitten geen dubbele items maar wel in de weggeschreven file ?
Visual Basic Code:
Open "C:\DanceTime\Regfiles\List1\List1.txt" For Append As #1 Print #filenum, (Form1.List1.Text) & vbCrLf Close #1
Dus als ik mijn tekstbestand open zie ik volgende erin:
#8
Geplaatst op 20 mei 2022 - 13:11
Inhoud Tekstbestand list1
Bob en Marthe
Frank en Lina
Mark en Tanja
Mark en Tanja
Mark en Tanja
Bob en Marthe
Frank en Lina
Mark en Tanja
Mark en Tanja
Mark en Tanja
#9
Geplaatst op 20 mei 2022 - 17:04
Ja wat snel getypt. Je zult iets met de if moeten doen of je sub opsplitsen in sub-subs programmeren is proberen tot het het doet wat je wilt en dan hopelijk heb je geen fouten
Trouwens als mijn geheugen nog goed is is een freefile een integer en geen string dus dat je code runt zonder probleem is nogal raar https://docs.microso...eefile-function
Trouwens als mijn geheugen nog goed is is een freefile een integer en geen string dus dat je code runt zonder probleem is nogal raar https://docs.microso...eefile-function
#10
Geplaatst op 30 mei 2022 - 12:48
Dag Damic,
Bedankt voor het meedenken en uw oplossing.
Ik ben hiermee geholpen, de laatste fout zat in de APPEND , deze aangepast naar OUTPUT.
Nu werkt het zoals ik het wou.
Gr en nogmaals bedankt.
Bedankt voor het meedenken en uw oplossing.
Ik ben hiermee geholpen, de laatste fout zat in de APPEND , deze aangepast naar OUTPUT.
Nu werkt het zoals ik het wou.
Gr en nogmaals bedankt.
Ook met taq VB6 voorzien
VB6
.Net →
VB6 →
Text En Tex2 Scrollen Zonder ScrollbarsBegonnen door Y@no , 11 mrt 2024 |
|
|
||
VB6
.Net →
VB6 →
E-Mail Met Bijlage Verzenden Vanuit Vba ExcelBegonnen door Guy_Meyvaert , 05 sep 2023 VBA |
|
|
||
VB6
.Net →
VB6 →
Datum En Tijd Syncen Door Ntp PoolBegonnen door Y@no , 17 mei 2023 |
|
|
||
VB6
.Net →
VB6 →
Msflexgrid + Left And Right MouseclickBegonnen door Marc_DV , 07 jan 2023 |
|
|
||
VB6
.Net →
VB6 →
Kan De Lege Rij Niet Invoegen. Er Moet Minimaal Één Kolomwaarde Zijn Ingesteld (Melding)Begonnen door Marc_DV , 31 okt 2022 |
|
|
0 gebruiker(s) lezen dit onderwerp
0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers