wilhelm.moser@demos.at 2003-06-13
download access_visual_basic_programmieren_mini_info.zip (7 kb)
Dieses Dokument soll einen ersten Überblick über die Verwendung der Programmiersprache Visual Basic bzw. Visual Basic for Applications anbieten. Es ist für Einsteiger in die Programmierung gedacht die einen "Erste Schritte in Visual Basic oder Visual Basic for Applications" Kurs besuchen. Allein mit dieser Anleitung können Sie nicht programmieren lernen. Dazu ist das Thema zu umfangreich. Lesen Sie bitte die etwas dickeren Bücher dazu! (So ab + 500 Seiten!)
Deklarationen
Sprachkonventionen
Variable und Konstante
Prozeduren
Kontrollstrukturen
[ top ]
Bevor Sie mit Variablen, Konstanten und Objekten arbeiten können müssen Sie diese deklarieren. Dafür wurden Begriffe reserviert
Public
ist im gesamten Programm gültig
Private
ist nur im Programmodul verfügbar
Dim
wird nur auf Prozedurebene (sub oder
function) verwendet
Deklarationsbeispiele:
Public
objWord as
Word.Application Private strSQLWhere as string Private booChanged as boolean Private lngCounter as long |
Objekt das eine
Word Anwendung darstellt Variable vom Datentyp String Variable von Datentyp Ja/Nein (-1,0) Variable von Datentyp Long (eine Zahl) |
(Die Bereiche der einzelnen Datentypen lesen Sie bitte in der VB, VBA oder Access Hilfe nach.)
[ top ]
In der Programmierergemeinschaft haben sich Sprachkonventionen entwickelt. Da gibt es die so genannte ungarische Notation (Vorkennung durch einen Buchstaben) usw. Ich jedenfalls habe mit einigen Kollegen einen eigenen Stil entwickelt der klarer ist. (3 Buchstaben) und zusammengesetzte Begriffe
Public =
pub
Private = 'ergibt sich aus NICHT
public
str = string
lng = long
dbl = double
boo = boolean
con = Konstante
dat = date
obj = object
m = Membervariable eines Objektes
c = Klassenvariable
ogr = Optionsgruppe
txt = Textfeld
lst = Listenfeld
cmb = Kombinationsfeld (Kombobox)
lbl = Bezeichnungsfeld
chk = Checkbox (Die Viereckerte)
opt = Optionschaltfläche
(Die Runde)
cmd = Schaltfläche
pic = picturebox
[ top ]
Guter Programmstil ist es
keine statischen Werte zu verwenden sondern VARIABLE
Wenn Sie Werte statisch deklarieren wollen verwenden Sie
Public pubconstrSQL as string = "SELECT Name, Vorname FROM Adressen"
Dim strHallo as string
[ top ]
VB kennt Sub und function. Der Unterschied ist, dass die Sub keinen Rückgabewert liefert. Beide können eine Parameterübergabe erfordern
(strInput) ist ein Parameter. Es können mehrere Parameter übergeben werden.
Dann wird der Code zumeist anhand der Parameter ausgeführt und ein Ergebnis ausgeführt(Sub) oder zurückgeliefert (Function)
(gibt in diesem Fall im Direktfenster strInput aus)
Private Sub MeinName(strInput as string)
debug.print strInput
End Sub
Aufrufen dieser Sub im Code: MeinName "Hugo"
(gibt in diesem Fall im Direktfenster strInput aus und liefert true zurück)
Private Function MeinName(strInput as string) as boolean
debug.print strInput
MeinName = trueEnd Function
Aufrufen dieser Function im Code: dummy = MeinName("Hugo")
(Vorsicht! Sie müssen dummy erst deklarieren!)
[ top ]
If
Bedingung AND/OR BEDINGUNG
then
Resultat 1
End If
oder
If
Bedingung AND/OR BEDINGUNG
then
Resultat 1
Else
Resultat
2
End If
Beispiel:
Dim booCheck as boolean
booCheck = true
If booCheck = true then 'möglich ist auch If booCheck then
MsgBox "Der Test war erfolgreich"
Else
MsgBox "Der Test ist fehlgeschlagen"
End If'############################
Select Case Bedingung
Case Bedingung
Case Bedingung
Case Bedingung
End Select
Beispiel 1:
Dim intCounter as Integer
intcounter = 2
Select Case intCounter
Case 1
Case 2
Msgbox "Hallo" 'wird ausgeführt
Case 3
End Select
Beispiel 2:
Dim strOrt as String
strOrt = "Wien"
Select Case strOrt
Case "Linz"
Case "Wien"
MsgBox "Sie haben Wien gewählt"
Case "Graz"
End Select
'############################
(Anm. Dieses Bespiel ist nur zur Demonstration. Der Aufbau ist schlecht da Linz, Wien Graz statisch sind)
While Bedingung
Wend
(solange die Bedingung nicht erfüllt ist)
Beispiel:
Dim db as Database
Dim rs as Recordset
Dim strTest as StringSet db = DBEngine(0, 0)
Set rs = db.OpenRecordset("SELECT Name, Vorname FROM Adressen", dbOpenDynaset)While not rs.EOF 'EOF = End Of File
strTest = rs!Name 'in strTest einlesen bis das Ende des Recordsets erreicht ist
rs.Movenext 'ACHTUNG: NIE VERGESSENWend
do
loop Bedingung
(führe aus bis die Bedingung erreicht ist. Diese Struktur ist unter Programmierern nicht gerne gesehen weil sie bei der Definition der Ausstiegsbedingung eine "verkehrte" Logik erfordert. Sie erreichen dasselbe Ziel mit While)
Beispiel :
Dim lngCounter as Long
for lngCounter = 0 to 100
debug.Print "Hallo" 'Schreibe Hallo ins (Menü Ansicht) - Direktfenster
lngCounter = lngCounter +1
Next
Anmerkung:
Manche Programmiersprachen benötigen unbedingt Next lngCounter! Bei Visual Basic allerdings wird die ausführung geringfügig schneller ohne lngCounter!
[ top ]