Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Visual Basic] Diverse vragen (https://forum.scholieren.com/showthread.php?t=838546)

Martin 13-05-2004 11:19

[Visual Basic] Controleren of value gezet is
 
Ik ben bezig om voor kantoor een wizard te schrijven voor het genereren van een standaarddocument (in dit geval een Internationaal Verzekeringsbewijs voor motorvoertuigen). In de software moet de gebruiker aan kunnen geven van welke maatschappij de kaart is, waarna Word er de goede layout bijpakt, invult en uitprint. Dat is allemaal geen probleem, maar ik loop vast bij de check of een maatschappij/polisnummer is gezet.

De code:

PHP-code:

//
//
// VISUAL BASIC, DUS GEEN PHP!
//
//
Private Sub btnAfdrukken_Click()

If 
IsEmpty(inpMaatschappij.TextThen
 Result 
MsgBox("U heeft geen maatschappij ingevuld."vbOKOnly vbInformation"Foutcode #1")
 
inpMaatschappij.SetFocus
End 
If


If 
IsEmpty(inpPolisnummer.TextThen
 Result 
MsgBox("U heeft geen polisnummer ingevuld."vbOKOnly vbInformation"Foutcode #1")
 
inpPolisnummer.SetFocus
End 
If


End Sub 

inpMaatschappij is een value uit een listbox en inpPolisnummer is een standaard textfield.

Waarom geeft het script geen MsgBox na het drukken op btnAfrukken?

iamcj 13-05-2004 12:22

if isnull(waarde) OR waarde = vbnullstring then


ook geld voor beide .text hoef je niet aan te geven, hoewel ik dan niet zeker weet. Iig is het voor de listbox .value

Marcade 13-05-2004 13:44

Citaat:

iamcj schreef op 13-05-2004 @ 13:22 :
if isnull(waarde) OR waarde = vbnullstring then


ook geld voor beide .text hoef je niet aan te geven, hoewel ik dan niet zeker weet. Iig is het voor de listbox .value

isnull(waarde) voor een tekstveld !? Werkt dat; wanneer krijg je true dan?

@Martin:

Misschien verstandiger om gewoon

if trim(waarde)="" then

te doen. Heb je ook geen last van spaties.

Martin 14-05-2004 10:30

Ik heb het zo opgelost:

Function IsLeeg(Tekst) As Boolean
IsLeeg = (IsEmpty(Tekst)) Or (Trim(Tekst = ""))
End Function

Vervolgens roep ik die functie zo aan:

If IsLeeg(inpPolisnummer.Text) Then
Result = MsgBox("U heeft het polisnummer van de verzekering niet ingevuld.", vbOKOnly + vbInformation, "Menu gegevens")
inpMaatschappij.SetFocus
Exit Sub
End If

-------------------------------------------

Volgende vraag:

Ik heb een listbox met namen van maatschappijen, afhankelijk van de naam van de maatschappij moet ik een actie uitvoeren. Maar hoe doe ik dat? Het lijkt me dat ik dat met een IF-statement moet gaan doen, maar hoe werkt dat in Visual Basic?

Code van de listbox:

Private Sub UserForm_Initialize()
Rem de listbox vullen
inpMaatschappij.ColumnCount = 1
inpMaatschappij.AddItem ("Aegon")
inpMaatschappij.AddItem ("Allianz Nederland")
end sub

iamcj 14-05-2004 12:08

Met isEmpty controleer je of een variabele is geinitialiseerd. Indien er geen waarde in een tekstbox staat is de waarde van de textbox Null.

Indien een textbox is gekoppeld aan een recordset is de waarde per definitie Null, voer je wat in en haal je het weer weg, is de waarde van de textBox een vbnullstring.

In de afterUpdate van de listbox, plaats je een select case. Normalitair gebruik je ook 2 kolommen in een listbox, 1 met een Id en 1 met een veldwaarde.

Select case me.lstBox.value
case 1
ik ga dit doen
Case 2
ik ga dat doen
Case else
ik doe niets
end select

eXo 14-05-2004 12:55

Kort vraagje, is het mogelijk om in VB de naam waarop je ingelogd ben op het netwerk (van windows) in een variabele te zetten? (door haar bv uit het register te halen oid)

iamcj 14-05-2004 15:59

Code:

' API-functie voor ophalen Windows Gebruikersnaam
Private Declare Function GetUserNameA Lib "advapi32.dll" (ByVal lpBuffer As String, _
nSize As Long) As Long

'*************************************************
' Procedure : WinUserName, String
' Doel      : Windows username verstrekken
'*************************************************
Property Get WinUser() As String
  Dim NBuffer As String
  Dim Buffsize As Long
  Dim Wok As Long
  Dim temp As String
 
  Buffsize = 256
  NBuffer = Space$(Buffsize)
  Wok = GetUserNameA(NBuffer, Buffsize)
  temp = Trim$(NBuffer)
  WinUser = Left$(temp, Len(temp) - 1)
End Property



Alle tijden zijn GMT +1. Het is nu 12:26.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.