Hallo Leute,
folgendes Problem:
Ich hab eine GUI aus der CreateInputs und eine CreateCombo ausgelesen werden muss.
Der Inhalt dieser Felder wird in einer Variable deklariert.
Der Inhalt der Combo muss mit einer Datenbak abgeglichen werden. Und hier tritt mein Problem auf.
Das Abgleichen der CreateCombo funktionert nicht!
Ich bekomme immer den Fehler:
Wenn ich allerdings den Inhalt der CreateCombo händig in eines der CreateCombos einfüge und den Inhalt dann mit der Datenbank abgleiche funktioniert das ganze wie es soll.
Was ich bisher probiert habe:
- Den Inhalt des CreateCombos in ein CreateInput händig eingefügt und per Skript den Inhalt des CreateInputs mit der DB abgeglichen, dies funktioniert
- Den Inhalt der CreateCombo als String deklariert. Den String als Variable deklariert und den String mit der DB abgeglichen, ohne Erfolg
- Den Inahlt der CreateCombo als String deklariert und mittels FileWrite und FileRead mit der DB abgeglichen kein Erfolg.
Ich gehe stark davon aus, dass etwas mit dem Create Combo nicht stimmt, da die CreateInputs immer für den Abgleich funktioniert haben.
Wichtig ist noch zu erwähnen, dass die CreateCombo mittel Array mit Einträgen befüllt wird. Der Inhalt der CreateCombo kann auch mittels MSgBox ausgelesen werden und wird auch per FileWrite ordentlich in eine Datei geschrieben.
Hier der betreffende Code:
#Region ### START Koda GUI section ### Form=
$cStandort = GUICtrlCreateCombo("", 20, 105, 260, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL))
$iLieferschein = GUICtrlCreateInput("", 20, 55, 260, 20)
$iNummer = GUICtrlCreateInput("", 20, 205, 260, 20)
$iAnzahl = GUICtrlCreateInput("", 20, 255, 260, 20)
#EndRegion ### END Koda GUI section ###
#Region ### ODBC Verbindung zur Access Datenbank und Auslesen der Standorte ###
$adoCon = ObjCreate("ADODB.Connection")
$adoCon.Open($dbname)
$adoRs = ObjCreate("ADODB.Recordset")
With $adoRs
.CursorType = 1
.LockType = 3
.Open("SELECT Location FROM Lokationen", $adoCon)
If .RecordCount Then
Local $Array[0]
While Not .EOF
$output = .Fields("Location").Value & @CRLF
_ArrayAdd($Array, $output)
.MoveNext
WEnd
EndIf
$String = _ArrayToString($Array)
GUICtrlSetData($cStandort,$String)
$adoCon.Close
EndWith
#EndRegion ### ODBC Verbindung zur Access Datenbank und Auslesen der Standorte ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $bSave
#cs -----------------------------------------------------------------------------
Auslesen der Inputfelder
#ce -----------------------------------------------------------------------------
$rLS = GUICtrlRead($iLieferschein) ;Hier wird der Inhalt der Inputbox "iLieferschein" in die Variable "$rLS" übernommen
$rDropdown = GUICtrlRead($cStandort) ;Hier wird der Inhalt der Combobox "Location" in die Variable "$rDropdown" übernommen
$rInventarnummer = GUICtrlRead($iNummer) ;Hier wird der Inhalt der Inputbox "$iNummer" in die Variable "$rInventarnummer" übernommen
$rAnzahl = GUICtrlRead($iAnzahl) ;Hier wir der Inhalt der Inputbox "$iAnzahl" in die Variable "$rAnzahl" übernommen
;~ If StringLen($rLS) <> 10 Then ;Lieferscheinlänge ungleich 10 Stellen?
;~ MsgBox(0+48, "Error!", "Bitte die Eingabe der Lieferscheinnummer überprüfen!")
;~ EndIf
If $rDropdown = "" Then ;Standort eingegeben?
MsgBox(0+48, "Error!", "Bitte den Standort aus der Dropdown-Liste auswählen!")
Elseif $rDropdown <> "" Then
;~ MsgBox(0,"Dropdown",$rDropdown)
;~ $b = String($rDrop)
;~ FileWrite(@ScriptDir & "\ha.txt", $b)
;~ $c = FileRead(@ScriptDir & "\ha.txt")
$adoCon = ObjCreate("ADODB.Connection")
$adoCon.Open($dbname)
With $adoRs
$adoRs = ObjCreate("ADODB.Recordset")
.CursorType = 1
.LockType = 3
.Open("SELECT Land FROM Lokationen WHERE Location = '" & $c & "'", $adoCon); Hier muss $rDropdown gefunden werden
$output_2 = .Fields("Land").Value
MsgBox(0,"Output",$output_2)
GUICtrlSetData($lStaat, $output_2)
EndWith
EndIf
EndSwitch
WEnd
Alles anzeigen
Falls mir jemand sagen kann was das Proble mit dem Dropdown ist, wäre ich sehr sehr dankbar