Hallo.
In meinem Makro möchte ich die Variable A mit "X" und z.B. mit 5 zusammensetzen zu "X5". Kein Problem:-)
Anschließend soll A in ein Objekt umgewandelt werden, damit ein anderes Makro (hier mit dem Namen X5) ausgeführt werden kann.
Bisher habe ich noch keine Lösung gefunden.
Geht das überhaupt?
Grüße
Uli
String in Objekt konvertieren?
Moderator: Moderatoren
Re: String in Objekt konvertieren?
Gemeint ist der Wert bzw, Inhalt der Variable und nicht wie geschrieben die Variable selbst, nehme ich an?In meinem Makro möchte ich die Variable A mit "X" und z.B. mit 5 zusammensetzen zu "X5".
Und das heißt konkret? Der Name eines Makros ist jedenfalls KEIN Objekt.Anschließend soll A in ein Objekt umgewandelt werden, damit ein anderes Makro (hier mit dem Namen X5) ausgeführt werden kann.
Was mir einfällt sind 2 Fälle, nämlich:
erstens das das Makro gewünschten Namens bereits existiert und nur noch gestartet werden soll, dann ist zwangsläufig auch die Anzahl denkbarer namentlicher Makros beschränkt und es reicht ein Select-Case, im prinzipiellen Sinne von:
Code: Alles auswählen
A = "X" & "5"
Select Case A
Case "X1"
X1
Case "X2"
X2
'Case ...
End SElect
Code: Alles auswählen
Sub Main
A = "X" & "5"
BasicLibs = Globalscope.BasicLibraries
oLib = BasicLibs.Getbyname("Standard")
moduleText = "REM Test" + CHR(13) + "Sub " & A + CHR(13) + "msgbox ""Hallo Welt"" " + CHR(13) + "End Sub"
oLib.insertByName("New_Modul",moduletext)
moduleText = "Sub Start_fuer_Laufzeitmakro()" + CHR(13) + "New_Modul." & A + CHR(13) + "End Sub"
oLib.insertByName("Modul_tmp",moduletext)
Modul_tmp.Start_fuer_Laufzeitmakro()
End Sub
was jedoch eine recht eigenwillige Art des Vorgehens wäre.
Gruß
Stephan
Re: String in Objekt konvertieren?
Hallo.
Die Case-Variante ist wohl eher das, was ich gesucht habe. Danke:-)
Das ganze brauche ich in einer SQL-Anweisung die mehrfach durchlaufen werden soll:
Aber leider wird die While-Anweisung nur einmal durchlaufen.
Woran liegt das??
Grüße
Uli
Die Case-Variante ist wohl eher das, was ich gesucht habe. Danke:-)
Das ganze brauche ich in einer SQL-Anweisung die mehrfach durchlaufen werden soll:
Code: Alles auswählen
While oResultSet.Next()
ObjID = oResultSet.getString(2)
Select Case ObjID
Case "1"
KMNKObjekt1
Case "2"
KMNKObjekt2 ...
Woran liegt das??
Grüße
Uli
Re: String in Objekt konvertieren?
Ich muß den Code ergänzen.
Es handelt sich im eine Schleife
Ohne die Case-Anweisung wird die While-Anweisung so oft durchlaufen, wie es Eergebinsse aus der SQl-Anweisung gibt.
Mit Case-Anweisung nur einmal.
Das verstehe ich nicht.
Grüße
Uli
Es handelt sich im eine Schleife
Code: Alles auswählen
...
Ergebnis = oListe.selecteditems
for i=0 to ubound(Ergebnis())
oResultSet = oStatement.executeQuery(SQL)
While oResultSet.Next()
ObjID = oResultSet.getString(2)
Select Case ObjID
Case "1"
KMNKObjekt1
Case "2"
KMNKObjekt2
...
End Select
wend
next i
Mit Case-Anweisung nur einmal.
Das verstehe ich nicht.
Grüße
Uli
Re: String in Objekt konvertieren?
Aloha
Möglicherweise ruft irgendein SELECT CASE einen Abbruch der Prozedur hervor?
Oder Du hast oResultSet als global bzw. modulweit definiert und arbeitest in einer aus dem SELECT CASE heraus aufgerufenen Prozedur mit einer neuen SQL-Abfrage, die nur ein Ergebnis hervorbringt?
Mehr als ins Blaue raten ist leider nicht drin bei dem Codeschnippsel, den Du gepostet hast.
Das Verhalten lässt sich weder reproduzieren noch erklären, was darauf schliessen lässt, dass der Fehler irgendwo bei Dir im Code begraben liegt.uli38 hat geschrieben:Ohne die Case-Anweisung wird die While-Anweisung so oft durchlaufen, wie es Eergebinsse aus der SQl-Anweisung gibt.
Mit Case-Anweisung nur einmal.
Möglicherweise ruft irgendein SELECT CASE einen Abbruch der Prozedur hervor?
Oder Du hast oResultSet als global bzw. modulweit definiert und arbeitest in einer aus dem SELECT CASE heraus aufgerufenen Prozedur mit einer neuen SQL-Abfrage, die nur ein Ergebnis hervorbringt?
Mehr als ins Blaue raten ist leider nicht drin bei dem Codeschnippsel, den Du gepostet hast.