Supportnet / Forum / Datenbanken
Access 2003: Suchformular
Frage
gleich vorneweg: ich bin keni access-pro, also würds mich freuen wenn ihr halbwegs verständliche lösungswege für mich finden würdet *g*
ich habe in meiner datenbank 3 suchfelder die alle unabhängig voneinander suchen. das suchen funktioniert auch einwandfrei, nur: wenn ich den datensatz gefunden habe kann ich bei den feldern wo vorher noch nichts eingetragen wurde nichts eintragen! (ich hoffe ich drücke mich verständlich aus *g*)
jedenfalls steht bei den feldern wo noch nichts eingetragen wurde nach dem suchen "#Name?" und ich kann daran auch nichts ändern, also nichts anderes eintragen! hier noch der code (der nicht von mir erstellt wurde):
Private Sub tbxName_AfterUpdate()
If Len(Me.tbxName) > 0 Then
Me.UF_Stammdaten.Form.RecordSource = GET_SQL_String(1, Me.tbxName)
End If
wie kann ich diesen fehler umgehen?
Me.Refresh
End Sub
Antwort 1 von digitalyzer
sorry, da is mir wohl ein kleines missgeschick passiert ;)
Me.Refresh
End Sub
gehören natürlich noch zum code dazu *g*
Me.Refresh
End Sub
gehören natürlich noch zum code dazu *g*
Antwort 2 von molluskel101
Der Fehler scheint in der Funktion GET_SQL_String() zu liegen.
Der Quellcode dieser Funktion könnte hilfreich sein.
Der Quellcode dieser Funktion könnte hilfreich sein.
Antwort 3 von digitalyzer
also ich kann mich ja täuschen aber ist das nicht ein standardbefehl in vb wie z.b. "cout" im c++??
ich find jedenfalls keine funktion "GET_SQL_String()"
aber wie gesagt, ich kann mich auch täuschen :) die tatsache das ich den bestehenden quellcode nicht gechrieben habe erschwert die sache natürlich etwas *g*
ich find jedenfalls keine funktion "GET_SQL_String()"
aber wie gesagt, ich kann mich auch täuschen :) die tatsache das ich den bestehenden quellcode nicht gechrieben habe erschwert die sache natürlich etwas *g*
Antwort 4 von molluskel101
Also in VB gibt es - meines Wissens nach - keine Funktion die GET_SQL_String() heißt.
Das klingt stark nach ner Eigenbau-Funktion.
Das klingt stark nach ner Eigenbau-Funktion.
Antwort 5 von Teddy7
Es ist halt immer schwierig mit Code zu arbeiten, den man gar nicht versteht.
Die Funktion ist mit Sicherheit kein Access-Standard.
Wahrscheinlich findest Du sie in einem Modul der Datenbank, wo Du den Code "gek(l)auft" hast.
Gruß
Teddy
Die Funktion ist mit Sicherheit kein Access-Standard.
Wahrscheinlich findest Du sie in einem Modul der Datenbank, wo Du den Code "gek(l)auft" hast.
Gruß
Teddy
Antwort 6 von digitalyzer
ja ihr habt recht... ob er geklaut wurde weiß ich nicht *g* jedenfalls, hier ist er:
Option Compare Database
´SQL String suchen nach
Public Function GET_SQL_String(index As Integer, text As String) As String
Dim strHilf As String
Dim zahl As Integer
Select Case index
Case 1
strHilf = "´" & text & "*´"
text = "´" & text & "´"
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE Name Like " & strHilf & " OR Name =" & text & ";"
Case 2
zahl = text
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE T_Stammdaten.Telefonnummer =" & zahl & ";"
Case 3
text = "´" & text & "´"
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE kabeltyp =" & text & ";"
Case 4
strHilf = "´" & text & "*´"
text = "´" & text & "´"
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE Anschlussdose_nr Like " & strHilf & " OR Anschlussdose_nr =" & text & ";"
End Select
End Function
Option Compare Database
´SQL String suchen nach
Public Function GET_SQL_String(index As Integer, text As String) As String
Dim strHilf As String
Dim zahl As Integer
Select Case index
Case 1
strHilf = "´" & text & "*´"
text = "´" & text & "´"
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE Name Like " & strHilf & " OR Name =" & text & ";"
Case 2
zahl = text
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE T_Stammdaten.Telefonnummer =" & zahl & ";"
Case 3
text = "´" & text & "´"
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE kabeltyp =" & text & ";"
Case 4
strHilf = "´" & text & "*´"
text = "´" & text & "´"
GET_SQL_String = "SELECT ID, Anrede, Name, Anschlussdose_nr, Datum, Länge, Kabeltyp, Telefonnummer, Switch, Port, Anschluß, verteiler " & _
"FROM T_Stammdaten " & _
"WHERE Anschlussdose_nr Like " & strHilf & " OR Anschlussdose_nr =" & text & ";"
End Select
End Function
Antwort 7 von Teddy7
Also ich sehe an dem select keine Fehler - außer vielleicht, daß es überflüssig ist auf like text* und zusätzlich auf = text abzufragen und daß man kein Feld NAME nennen soll, weil das eine reservierte Access-Bezeichnung ist.
Zurück zum Problem:
In welche Felder kannst Du nichts eintragen ?
In die Suchfelder, oder in Felder des angezeigten Datensatzes ?
Wenn letzteres - wie und wo werden die Daten angezeigt ?
Gruß
Teddy
Zurück zum Problem:
In welche Felder kannst Du nichts eintragen ?
In die Suchfelder, oder in Felder des angezeigten Datensatzes ?
Wenn letzteres - wie und wo werden die Daten angezeigt ?
Gruß
Teddy
Antwort 8 von digitalyzer
die datensätze werden in einem unterformular angezeigt. und in den feldern in denen noch nichts eingetragen wurde kann nach dem suchen auch nichts mehr eingetragen werden, weil, wie schon erwähnt, das feld nach dem suchen den wert "#Name?" enthält
Antwort 9 von Teddy7
Das muß am Unterformular liegen. Schau Dir mal die Felddefinitionen an. Eingabeschablonen oder Wertprüfungen können Ärger machen. Vielleicht stimmen auch die Namen der gebundenen Felder nicht. Ist das Formular so eingestellt, daß eine Datenänderung erlaubt ist ? Prüf mal die Verknüpfung zum Hauptformular - auch da könnte was falsch sein.
Gruß
Teddy
Gruß
Teddy
Antwort 10 von digitalyzer
ja das formular ist so eingestellt das eine datenänderung möglich ist! genau darauf kommts mir ja an! ich will nach dem suchen direkt im unterformular etwas ändern bzw. hinzufügen können!