Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable kann nicht in Textbox angezeigt werden

Variable kann nicht in Textbox angezeigt werden
14.12.2005 10:05:49
Schiwek
Hallo Leute,
ich habe eine Variable "public servername as string" im Deklarationsteil von Modul1 deklariert. Ich möchte in dieser Variable gerne den Servernamen speichern auf dem mein MySQL-Server liegt. Dazu habe ich dann auch ein kleines Userform erstellt in dem ich ,wenn dieses Userform aktiviert wird, in einer Textbox den aktuellen Servernamen anzeigen möchte. Und hier liegt das Problem. Die Variable wird nicht in der Textbox angezeigt. Dabei ist die Variable servername schon initialisiert z.b. servername = "localhost".
Code zum Textfeld:
txt_server.text = servername ´oder
txt_server.value = servername ´oder
frm_server.txt_server.text = servername
frm_server.txt_server.value = servername
liefern kein Ergebniss. D.h. das Textfeld im Userform bleibt leer. Dabei ist aber die Variable servername mit z.B. "localhost" initialisiert da ich problemlos die Verbindung zu meiner Datenbank aufbauen kann. Die einzigen Ergebnisse die ich erhalte sind beim folgenden Code:
txt_server.text = " & servername & "
txt_server.text = " servername "
dann zeigt das Textfeld im Userform nur & servername & oder servername an was ich natürlich nicht will.
Da ich noch nicht lange Programmiererfahrung habe bin ich auf euch angewiesen :-). Es wäre sehr nett wenn ihr mir da weiterhelfen könntet.
Gruß Valentin

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 11:16:25
Heiko
Hallo Valentin,
hast du mal ein bisschen mehr Code, denn eigentlich müßte das so laufen.
Z.B. stellt sich mir die Frage wann wird denn diese Zeile ausgeführt:
txt_server.text = servername ´oder
Bei Userform1_Activate oder wann ?!
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 12:39:39
Valentin
Hallo Heiko,
danke für Deine Hilfe.
Der gesamte Code im besagten Userform sieht folgendermaßen aus: Der Code wird normal durchlaufen ohne Fehlermeldung oder msgbox-Meldung, leider mit leerem Textfeld.

Private Sub UserForm_Activate()
If IsEmpty(servername) Or IsNull(servername) Then
MsgBox "Es wurde noch kein Servername der Applikation zugewiesen."
Else
txt_server.text = servername
End if
End Sub

Was mich aber derweil total verblüfft ist, dass ich auf meine Datenbank Zugriff habe, selbst wenn ich die Variablendeklaration -- dim servername as string -- lösche. Kann es sein das der Variablenwert "localhost" in in der Variable servername weiter gespeichert bleibt? Also im connectionstring. Code:
conn.ConnectionSTring = "Driver=(MySQL OCBC 3.51 Driver);Server =" & servername & ";Database = databasename......
Wenn ich dann aber die Variable wieder deklariere also dim servername as string und dann das Userform aktiviere, erscheint obengenannte msgbox-Meldung. Ich vermute hier sind irgendwo zwei Variablen mit dem Namen servername vorhanden. Wobei die Textbox immer noch leer bleibt. Was ich auch noch probiert habe, ist die Variable nicht im Modul1 zu deklarieren sondern im Deklarationsteil von meinem Userform. Leider ohne Verbesserung.
Hoffe dass konnte Dir weiterhelfen.
Gruß Valentin
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 12:51:34
Heiko
Hallo Valentin,
IsEmpty und IsNull benötigen als Argument Variablen vom Typ Variant, da du aber deine Variable als String deklariert hast geht das nicht.
Bei diesem Code kommt die Fehlermeldung wenn in servername nichts drin steht.

Private Sub UserForm_Activate()
If servername = "" Then
MsgBox "Es wurde noch kein Servername der Applikation zugewiesen."
Else
txt_server.Text = servername
End If
End Sub

Ansonsten ist es für mich immer noch stochern im Nebel, das was du gezeigt hast läuft jedenfalls mit meiner Änderung.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 16:45:28
Valentin
Hallo Heiko,
danke vielmals für Deinen Tip mit der IsEmpty()-Funktion. Was das Problem mit der Textbox angeht habe ich jetzt zusätzliche Infos. Habe die gleiche Exceldatei auf einem anderen Rechner ausprobiert und es funktioniert. Nur verliert die Variable servername ihren Wert wenn ich Excel schließe, d.h. ich muss die Variable immer erst initialisieren bevor ich sie verwenden kann (im Gegensatz zum Laptop). Wie kann ich den Wert einer Variablen ändern, so dass sie ihren Wert beibehält nachdem Excel geschlossen ist aber der Wert der Variable später noch veränderbar bleibt? Über const und static glaube ich ist das nicht möglich.
Das führt mich dann auch gleich zum eigenartigen Verhalten meiner Datei wenn sie auf meinem Laptop läuft. Habe jetzt überall mal ein option explicit eingesetzt und siehe da, dort wo servername im connectionstring (Makro des Sheet2) steht wird die Variable nicht erkannt, weil sie nicht deklariert ist. Die Verbindung zur Datenbank wird erstellt wenn im Sheet2 eine Schaltfläche geklickt wird. D.h. das Makro steht in dem Sheet2 und nicht im Modul1. Können Makros in Sheets auch auf öffentliche Variablen zugreifen die in einem Modul deklariert sind? Denn Excel weist mich darauf hin, dass die Variable servername (vom Typ string) in Sheet2 nicht bekannt ist obwohl sie als public in Modul1 deklariert ist.
Habe gerade die Variable servername als variant deklariert und sie wird jetzt doch erkannt.
Und was ganz seltsam ist, dass diese Variable servername in sheet2 ihren Wert beibehält (egal ob als typ string oder variant). Vielleicht hast Du ja eine Idee worans liegen könnte.
Gruss Valentin.
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
15.12.2005 07:34:29
Heiko
Moin Valentin,
zwei Antworten hätte ich für dich:
Wenn du Variablen nach schließen und erneuten öffnen noch mit Wert gefüllt haben möchtest dieser Wert aber veränderbar sein soll, dann geht das mit den VBA Variablen überhaupt NICHT. Dazu mußt du sie vor dem schließen der Datei in ein Tabellenblatt ablegen, das kann (oder sollte sogar damit da keiner was ändert) ausgeblendet sein. Das ist übrigens unabhängig ob du einen Laptop oder PC benutzt. EXCEL aus Variablen leer.
Wenn du eine Variable in einem allgemeinen Modul als Public deklarierst, dann kann das ganze Projekt (also Makros aus DieseArbeitsMappe, Tabellen, Userforms, anderen Modulen) darauf zugreifen.
Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
15.12.2005 09:33:54
Valentin
Hallo Heiko,
Du bist ja schon früh auf den Beinen. Danke für Deine Info. Ich habe gestern abend die Variable zum Typ variant umdeklariert und anstatt txt_server.text = servername, txt_server.value = servername verwendet. Plötzlich ist es gegangen (auch auf dem Laptop). Ich kann es mir nicht wirklich erklären. Zum Thema variablen die ihren Wert behalten nachdem Excel geschlossen wird muss ich auch sagen, dass dies momentan bei meinem Laptop tatsächlich der Fall ist. Folgendes: Wenn ich die Variablendeklaration lösche, also z.B. Dim Servername as Variant, Excel schließe und dann wieder öffne, ist der Wert in servername immer noch localhost weil ich ja immer noch die Verbindung mit der Datenbank herstellen kann. Nun ich habe überall im Code nachgeschaut ob der variable servername, die ja im connectionstring steht, irgendwo ein Wert zugewiesen wird. Ich kann keinen finden. Für mich ein Rätzel wenn du sagst das dies in mit VBA-Variablen gar nicht gehen kann. Aber ich muss sagen auf dem anderen Rechner verhält sich die selbe Applikation (einfach Exceldatei kopiert und dort zum Laufen gebracht) genau so. Die Variable verliert ihren Wert wenn Excel geschlossen wird. Nur halt nicht auf dem Laptop.
Gruss Valentin
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 12:39:48
Valentin
Hallo Heiko,
danke für Deine Hilfe.
Der gesamte Code im besagten Userform sieht folgendermaßen aus: Der Code wird normal durchlaufen ohne Fehlermeldung oder msgbox-Meldung, leider mit leerem Textfeld.

Private Sub UserForm_Activate()
If IsEmpty(servername) Or IsNull(servername) Then
MsgBox "Es wurde noch kein Servername der Applikation zugewiesen."
Else
txt_server.text = servername
End if
End Sub

Was mich aber derweil total verblüfft ist, dass ich auf meine Datenbank Zugriff habe, selbst wenn ich die Variablendeklaration -- dim servername as string -- lösche. Kann es sein das der Variablenwert "localhost" in in der Variable servername weiter gespeichert bleibt? Also im connectionstring. Code:
conn.ConnectionSTring = "Driver=(MySQL OCBC 3.51 Driver);Server =" & servername & ";Database = databasename......
Wenn ich dann aber die Variable wieder deklariere also dim servername as string und dann das Userform aktiviere, erscheint obengenannte msgbox-Meldung. Ich vermute hier sind irgendwo zwei Variablen mit dem Namen servername vorhanden. Wobei die Textbox immer noch leer bleibt. Was ich auch noch probiert habe, ist die Variable nicht im Modul1 zu deklarieren sondern im Deklarationsteil von meinem Userform. Leider ohne Verbesserung.
Hoffe dass konnte Dir weiterhelfen.
Gruß Valentin
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 12:40:33
Valentin
Hallo Heiko,
danke für Deine Hilfe.
Der gesamte Code im besagten Userform sieht folgendermaßen aus: Der Code wird normal durchlaufen ohne Fehlermeldung oder msgbox-Meldung, leider mit leerem Textfeld.

Private Sub UserForm_Activate()
If IsEmpty(servername) Or IsNull(servername) Then
MsgBox "Es wurde noch kein Servername der Applikation zugewiesen."
Else
txt_server.text = servername
End if
End Sub

Was mich aber derweil total verblüfft ist, dass ich auf meine Datenbank Zugriff habe, selbst wenn ich die Variablendeklaration -- dim servername as string -- lösche. Kann es sein das der Variablenwert "localhost" in in der Variable servername weiter gespeichert bleibt? Also im connectionstring. Code:
conn.ConnectionSTring = "Driver=(MySQL OCBC 3.51 Driver);Server =" & servername & ";Database = databasename......
Wenn ich dann aber die Variable wieder deklariere also dim servername as string und dann das Userform aktiviere, erscheint obengenannte msgbox-Meldung. Ich vermute hier sind irgendwo zwei Variablen mit dem Namen servername vorhanden. Wobei die Textbox immer noch leer bleibt. Was ich auch noch probiert habe, ist die Variable nicht im Modul1 zu deklarieren sondern im Deklarationsteil von meinem Userform. Leider ohne Verbesserung.
Hoffe dass konnte Dir weiterhelfen.
Gruß Valentin
Anzeige
AW: Variable kann nicht in Textbox angezeigt werden
14.12.2005 12:40:33
Valentin
Hallo Heiko,
danke für Deine Hilfe.
Der gesamte Code im besagten Userform sieht folgendermaßen aus: Der Code wird normal durchlaufen ohne Fehlermeldung oder msgbox-Meldung, leider mit leerem Textfeld.

Private Sub UserForm_Activate()
If IsEmpty(servername) Or IsNull(servername) Then
MsgBox "Es wurde noch kein Servername der Applikation zugewiesen."
Else
txt_server.text = servername
End if
End Sub

Was mich aber derweil total verblüfft ist, dass ich auf meine Datenbank Zugriff habe, selbst wenn ich die Variablendeklaration -- dim servername as string -- lösche. Kann es sein das der Variablenwert "localhost" in in der Variable servername weiter gespeichert bleibt? Also im connectionstring. Code:
conn.ConnectionSTring = "Driver=(MySQL OCBC 3.51 Driver);Server =" & servername & ";Database = databasename......
Wenn ich dann aber die Variable wieder deklariere also dim servername as string und dann das Userform aktiviere, erscheint obengenannte msgbox-Meldung. Ich vermute hier sind irgendwo zwei Variablen mit dem Namen servername vorhanden. Wobei die Textbox immer noch leer bleibt. Was ich auch noch probiert habe, ist die Variable nicht im Modul1 zu deklarieren sondern im Deklarationsteil von meinem Userform. Leider ohne Verbesserung.
Hoffe dass konnte Dir weiterhelfen.
Gruß Valentin
Anzeige

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige