#1
|
||||
|
||||
Hilfe bei Visual Basic
Ich habe eine Frage zu Visual Basic:
Angenommen ich habe eine Form1 und möchte dass er nach einer Engabe eines Benutzernamens und des richtigen Psswortes eine neue Form2 aufmacht. Wie muss ich das anstellen? Anbei der Code.... Private Sub Command1_Click() If Text2 = "Müller" And Text1 = "Test" Or Text2 = "Meier" And Text1 = "falsch" Then MsgBox ("Zutritt gewährt") Else: MsgBox ("Username / Passwor falsch oder nicht bekannt") End If End Sub
Geändert von The Bang 2 (16-06-2002 um 12:59 Uhr). |
#2
|
||||
|
||||
Hmm... ziemlich lange her...
Code:
Private Sub Command1_Click() If Text2 = "Müller" And Text1 = "Test" Or Text2 = "Meier" And Text1 = "falsch" Then MsgBox ("Zutritt gewährt") hier kommt der Name der Form die aufgerufen werden soll Exit Sub Else: MsgBox ("Username / Passwor falsch oder nicht bekannt") End If End Sub
__________________
Zitat:
|
#3
|
||||
|
||||
Jo
Genau das wollte ich wissen! Arg, jetzt bekomm ich immer nen "Compile Error - Argument not optional" Geändert von The Bang 2 (16-06-2002 um 13:21 Uhr). |
#4
|
||||
|
||||
Wie gesagt, ist ein paar Jahre her bei mir.... wie sieht der Code denn jetzt aus?
__________________
Zitat:
|
#5
|
||||
|
||||
Also ich hab nochmal von vorne angefangen, es sieht jetz so aus:
Private Sub Command1_Click() If Text1 = "Test" And text2 = "test" Then MsgBox ("Zugang gewährt") Form2 Exit Sub Else: MsgBox ("Username / Passwort falsch oder nicht bekannt") End If End Sub Ich führ ihn aus, dann bekomm ich die Fehlermeldung und dann siehts so aus: Private Sub Command1_Click() If Text1 = "Test" And text2 = "test" Then MsgBox ("Zugang gewährt") Form2 Exit Sub Else: MsgBox ("Username / Passwort falsch oder nicht bekannt") End If End Sub |
#6
|
||||
|
||||
Mal eine andere Frage vorab:
Willst Du die zweite Form über der ersten liegen haben, oder soll er die erste Form ganz beenden und nur noch die zweite anzeigen ? Mit welcher VB-Version arbeitest Du ? Antworte mir mal darauf und ich schreib Dir nachher die Lösung (muß gleich wieder in Besprechung, kann erst danach antworten). |
#7
|
||||
|
||||
Mhh wo ihr grade von Visual Basic redet, woher bekommt man des und wo bekommt man dazu ne gute Anleitung ????
Ich möcht soetwas auch mal lernen ! EDIT: Ich hab des jetzt von der Windows Seite aber weiss nicht wie man das startet ! Sorry ich bin darin der absulute Newbie !
__________________
MFG CAT_forever ! My PC: AMD Athlon 64 X2 6000+ | Asus Crosshair Mainboard Asus ATI Radeon HD2900XT Grafikkarte Samsung Spinpoint T166 500Gb 7200rpm 16MB Festplatte | Samsung F1 750GB 7200rpm 32MB Festplatte 4096MB PC-800 Corsair XMS-2 DHX DDR2 Ram (CL 4-4-4-12) Nec DVD-Rom Brenner 16x8x48x32x48 | Aopen 52x32x52 Brenner Geändert von CAT_forever (17-06-2002 um 15:37 Uhr). |
#8
|
||||
|
||||
Alsoo... in die erste soll der Username und das Passwort eingegeben werden, dann schliest sicht diee Form1 und Form2 soll ich aufmachen, arbeiten tu ich mit VB 6.0
@Cat: Wir lernen das inner Schule... Geändert von The Bang 2 (17-06-2002 um 20:56 Uhr). |
#9
|
||||
|
||||
Ich wäre froh, wenn wir das in der Schule auch mal lernen würden !
__________________
MFG CAT_forever ! My PC: AMD Athlon 64 X2 6000+ | Asus Crosshair Mainboard Asus ATI Radeon HD2900XT Grafikkarte Samsung Spinpoint T166 500Gb 7200rpm 16MB Festplatte | Samsung F1 750GB 7200rpm 32MB Festplatte 4096MB PC-800 Corsair XMS-2 DHX DDR2 Ram (CL 4-4-4-12) Nec DVD-Rom Brenner 16x8x48x32x48 | Aopen 52x32x52 Brenner |
#10
|
||||
|
||||
hm ich hab mich extra dafür eingesetzt sowas nicht in der schule zu machen! zur auswahl waren basic (bzw. vbasic) pascal (bzw. delphi) und c++ ...
hmm was nehmen wir denn da?! das was ich eh schon n bisschen kann und das was nach meinungen einiger das beste ist (da man eigentlich im beruf später auch damit programmiert) c++ aber du kannst vb als schüler (schülerausweis) für irgendwas bei 30 oder 35 € bei software läden kaufen!
__________________
C3H6O Aceton Burning squirrel Und nicht vergessen: Dieser Beitrag hat Superkuh-Kräfte! |
#11
|
||||
|
||||
OK, ist gestern etwas später geworden.
Eigentlich sollte es reichen, wenn Du erstens Form2 in Form2.show änderst (damit zeigst Du die zweite Form an) Danach noch das Exit Sub unmittelbar dahinter in ein Unload Form1 ändern und vor den Befehl Form2.show schreiben (hoffentlich ist die Farbe in Deinem Style erkennbar). Mit dem Befehl entfernst Du die erste Form komplett aus dem Speicher, d. h. auch, daß alle Weret auf die Defaults (Ursprungswerte) zurückgesetzt werden und Du nichts mehr daraus ansprechen kannst (um es zu verdeutlichen, Du kannst dann aus der Form2 zwar noch das Feld Form1.Text1 ansprechen, aber es wird nicht mehr Test enthalten, sondern das, was zu Programmstart drin stand. Willst Du die Form1 im Speicher behalten und nur verbergen, so nimm anstatt Unload Form1 den Befehl Form1.hide Der verbirgt nur die Form1 |
#12
|
||||
|
||||
Jup genau!
Noch ne frage: Wie bekomm ich denn bei Msg`s oder Imps einen Titel in die Leiste oben? |
#13
|
||||
|
||||
Würde ich folgendermaßen machen:
Als erstes Variablen definieren. Dabei solltest Du Dir im Klaren sein, wo und wie Du die definierst, also ob lokale oder globale Variablen. In Deinem Fall reicht es beispielsweise, wenn Du die unter (Allgemein) (Deklarationen) in der Form1 definierst. Private message As String Private überschrift As String Private antwort As Integer Dann weist Du der Variable message den Text zu, den Du anzeigen willst (in Deinem Fall also beispielsweise "Zugang gewährt") und die Variable überschrift füllst Du halt mit der gewünschten Überschrift. Anschließend noch die msgbox-Zeilen ändern und zwar folgendermaßen: Aus MsgBox ("Zugang gewährt") wird dann antwort = MsgBox(message, , überschrift) Dann hast Du eine Messagebox mit Überschrift. Zwischen die beiden Kommata könntest Du noch einen Wert eintragen, der besagt, was alles für Buttons in der Messagebox angezeigt werden, wenn Du es weglässt, wie ich im Beispiel, wird als Default 0 genommen und der zeigt nur den "OK"-Button an. Hast Du einen anderen Wert, der evtl. mehrere Buttons anzeigt, steht in der Variablen antwort der Wert des gedrückten Buttons in der Messagebox drin (alle Möglichkeiten dafür findest Du aber irgendwo in der Hilfe). Und noch eine ganz wichtige Sache. Gehe unter EXTRAS/OPTIONEN und dort unter der Registerkarte EDITOR. Schalte dort auf jeden Fall die Check-Box Variablendeklaration erforderlich an, denn ansonsten kann man sich in Teufelsküche bringen und manche Fehler sind kaum noch nachvollziehbar. Ist zwar ein bißchen mehr Arbeit, daß man alle Variablen, die man benutzt, auch definieren muß, aber es ist sauberer und wer ohne programmiert ist ....... (zensiert ). |
#14
|
||||
|
||||
Erledigt.
Frage: Das mit der MSGbox schaut doch bisschen anders aus, wenn ich das so mache: E = Zahl1 + Zahl2 Msgbox E Wie sieht das denn jetzt hier aus? Geändert von The Bang 2 (22-06-2002 um 17:36 Uhr). |
#15
|
||||
|
||||
Sorry, die Frage verstehe ich nicht so ganz.
E ist eine Variable, die Du vermutlich "INTEGER" definiert hast. Aber was soll jetzt damit sein ? Wenn Du es so machst, wie Du schreibst, hast Du halt das Ergebnis Deiner Addition in der Message-Box. Wenn Du da auch eine Überschrift drin haben willst, machst Du es einfach so, wie ich vorher bereits geschrieben hatte, nur daß Du message halt durch E in der Msgbox-Anweisung ersetzt. Ansonsten beschreib Dein Problem bitte mal genauer, ich sehe es noch nicht. Wunder Dich übrigens nicht, wenn die Antworten schonmal dauern, es gibt Wochenenden, an denen ich gar nicht Online bin und je nach Arbeitssituation kann es unter der Woche mal in 5 Minuten gehen, aber auch mal 2 Tage dauern. |
#16
|
||||
|
||||
Private Sub Command1_Click()
Dim Zahl1, zahl2 As Double Zahl1 = InputBox("Bitte die erste Zahl eingeben", "Addition") zahl2 = InputBox("Bitte zweite Zahl eingeben", "Addition") E = Zahl1 + zahl2 MsgBox E End Sub Jetzt verstanden? |
#17
|
||||
|
||||
Ach so.
Ich nehme an, Du hast das Problem, daß er so nicht rechnet, weil er durch die Input-Box Strings in Deine Variablen geschrieben hat. Wahrscheinlich hängt er nur die zwei Zahlen aneinander. Änder es folgendermaßen ab: E = val(Zahl1) + val(zahl2) "E" hast Du aber hoffentlich auch irgendwo deklariert |
#18
|
||||
|
||||
Jepp, hab ich.
Aber wie füge ich da jetzt den Titel ein? Geändert von The Bang 2 (24-06-2002 um 19:23 Uhr). |
#19
|
||||
|
||||
Dim E As Double
Dim überschrift As String Dim antwort As Integer . . . . E = val(Zahl1) + val(zahl2) überschrift = "Ich liebe RA2K" antwort = MsgBox(E, , überschrift) *Editiert* Hab das "Private" jetzt auch mal in "Dim" geändert, da "Private" im Click-Ereignis des Buttons natürlich nicht geht, sondern nur im Deklarationsteil der Form und Du scheinbar im Click-Ereignis definierst. *Editiert* Geändert von NodMot (25-06-2002 um 07:29 Uhr). |