vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Git-Git
Datum: 04.09.15 14:48

Hallo, ich hab ein Problem mit meinem Textfeld.
In meinem Textfeld soll ein Filterkriterium eingegeben werden, das lese ich dann so aus:

Dim str as String
str = Me.TextBox
Hab bei meiner Sub schon andere Probleme gehabt, aber bei dem ist es so, dass es funktioniert hat, dann nichtmehr, dann doch wieder und jetzt wieder nicht... Ich komm nicht drauf was es da hat.

ich gebe eine zahl in das TF ein und die Sub wird bei Änderung des TF ausgeführt, in der Sub sagt er aber dann, dass Me.TextBox = Null. Jemand eine Idee warum?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: OGGI
Datum: 04.09.15 15:47

Howdy Git-Git

Du dimensonierst den VB-Befehl str als Stringvariable!

Beitrag wurde zuletzt am 04.09.15 um 15:50:54 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Git-Git
Datum: 04.09.15 15:55

Ja, es wird ja auch ein string eingegeben, hab das textfeld auch entsprechend definiert. (bei den Eigenschaften)

Ich habs jetzt in eine public function geschrieben mit Forms!Formular.TextBox, jetzt gehts grad wieder.

Aber ganz was anderes. Wie gesagt hab ich die Ereignisprozedur bei "Änderung" rein geschrieben, wenn ich in das TF jetzt 3 Ziffern eingib, dann macht es logischer weise 3 mal die Prozedur aber die dritte ziffer wird nicht berücksichtigt, da kann i aber nix tun oder?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: OGGI
Datum: 04.09.15 16:06

Hallooo, man darf keinen Visual-Basic-Befehl als Variable verwenden! Sonst fängt das Proggi an zu spinnen, grad so wie bei dir
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Franki
Datum: 05.09.15 05:21

Hallo,

ein Textfeld kann wie der Name schon sagt erst mal nur Texte erfassen. Dabei spielt es keine Rolle, ob da Ziffern, Zahlen oder sonst was eingegeben wird. Alles wird als String behandelt.

Wenn du die im Textfeld gemachte Eingabe weiter verarbeiten möchtest, musst du sie zuerst auf Plausibilität prüfen, d.h. ob der "Text" auch für die Weiterverarbeitung geeignet ist.

Das OnChange Ereignis kann auch bedeuten, dass gar kein Text/Inhalt vorhanden ist oder auch dass z.B. über die Zwischenablage mehrere Zeichen eingefügt werden usw. usw.

Den Inhalt kannst du auf Kritierien prüfen z.B. so als Beispiel:
Private Sub Text1_Change()
    If Len(Me.Text1.Text) > 0 Then
        If Trim(Me.Text1.Text) = "" Then
            MsgBox "Textbox enthält nur " & Len(Me.Text1.Text) & " Leerzeichen"
            Exit Sub
        End If
        If IsNumeric(Me.Text1.Text) Then
            MsgBox "Textbox enthält eine Ziffer oder Zahl"
            Exit Sub
        Else
            MsgBox "Textbox enthält Text"
            Exit Sub
        End If
    Else
        MsgBox "Textbox ist leer"
    End If
End Sub
Und erst dann, wenn der Inhalt deiner Textbox den Plausibilitätskriterien entspricht darfst du ihn an eine Funktion weiter geben. Grade bei OnChange wird ja jeder Tastendruck ausgewertet, d.h. das wird oft aufgerufen ohne dass der User z.B. bei einer PLZ Eingabe die 5 Ziffern vervollständigt hat.

Ansonsten kannst du uns ja mal etwas Code posten.

Gruß
Frank




Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Git-Git
Datum: 07.09.15 08:01

Hallo Franki, danke für deine Antwort. Wie gesagt, soll der Code bei jeder eingabe bzw Änderung des eingegebenen Textes ausgeführt werden. Wie gesagt er liest es jetzt aus aber immer das was als letztes eingegeben wurde wird nicht berücksichtigt. Schreibe ich z.B. 1 tut er ersmal nix, bei 12, dann berücksichtigt er die 1 bei 123 die 12 bei 1234 die 123 usw.

So sieht mein Code aus.
Public Function fcFilter()
    Dim sql As String
    Dim eing As String
    Dim DB As DAO.Database
    Dim i As Integer
    Dim s As String
 
    i = Forms!F_Komponentendetail.Filterwahl_LF.ItemsSelected(0)
 
    If IsNull(Forms!F_Komponentendetail.Eingabe_TF) Then
    Else
 
        eing = Forms!F_Komponentendetail.Eingabe_TF
 
        If i = 0 Then
            sql = "SELECT * FROM Datenbank WHERE ((Datenbank.[TT-Nr]) LIKE '" & _
              eing & "*') ORDER BY Datenbank.[TT-Nr];"
 
            Set DB = CurrentDb
            DB.QueryDefs("A_Komponentendetail").sql = sql
            Set DB = Nothing
 
        ElseIf i = 1 Then
            sql = "SELECT * FROM Datenbank WHERE ((Datenbank.[Referenztest])" & _
              "LIKE '" & eing & "*') ORDER BY Datenbank.[Referenztest];"
 
            Set DB = CurrentDb
            DB.QueryDefs("A_Komponentendetail").sql = sql
            Set DB = Nothing
        End If
    End If
 
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Git-Git
Datum: 07.09.15 08:53

ah, nein hab ich nicht, das war nur ein beispiel in meinem Code heißt die Variable "eing"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: whisky1108
Datum: 07.09.15 12:20

Führe das Statement nicht im Change sondern im KeyUp aus.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Git-Git
Datum: 07.09.15 12:57

leider genau das gleiche....

Er startet zwar jetzt gleich mit "1"...

Eingabe - Filter
1 - "1"
12 - "1"
123 - "12"
1234 - "123"

Beitrag wurde zuletzt am 07.09.15 um 13:16:36 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: whisky1108
Datum: 08.09.15 09:03

Kannst du mal deinen Code posten?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: whisky1108
Datum: 08.09.15 09:11

Private Sub Eingabe_TF_KeyUp(KeyCode As Integer, Shift As Integer)
 
fcFilter Eingabe_TF.Text
 
End Sub
 
Public Function fcFilter(ByVal sEing As String)
    Dim sql As String
    Dim DB As DAO.Database
    Dim i As Integer
 
    If Trim(sEing) = "" Then Exit Function
 
    i = Forms!F_Komponentendetail.Filterwahl_LF.ItemsSelected(0)
 
 
 
        If i = 0 Then
            sql = "SELECT * FROM Datenbank WHERE ((Datenbank.[TT-Nr]) LIKE '" & _
              sEing & "*') ORDER BY Datenbank.[TT-Nr];"
 
            Set DB = CurrentDb
            DB.QueryDefs("A_Komponentendetail").sql = sql
            Set DB = Nothing
 
        ElseIf i = 1 Then
            sql = "SELECT * FROM Datenbank WHERE ((Datenbank.[Referenztest])" & _
              "LIKE '" & sEing & "*') ORDER BY Datenbank.[Referenztest];"
 
            Set DB = CurrentDb
            DB.QueryDefs("A_Komponentendetail").sql = sql
            Set DB = Nothing
        End If
 
End Function


Beitrag wurde zuletzt am 08.09.15 um 09:21:22 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: Git-Git
Datum: 08.09.15 10:51

Uiiiii super, danke!!!!!!!!

funktioniert einwandfrei super Danke für die Hilfe!!!!!!!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfeld auslesen, manchmal gehts manchmal nicht??? 
Autor: whisky1108
Datum: 08.09.15 12:22

Wenn du keinen Rückgabewert aus der Funktion erwartest, solltest du es formhalber als Sub deklarieren.

Private Sub Eingabe_TF_KeyUp(KeyCode As Integer, Shift As Integer)
 
subFilter Eingabe_TF.Text
 
End Sub
 
Public Sub subFilter(ByVal sEing As String)
    Dim sql As String
    Dim DB As DAO.Database
    Dim i As Integer
 
    If Trim(sEing) = "" Then Exit Sub
 
    i = Forms!F_Komponentendetail.Filterwahl_LF.ItemsSelected(0)
 
 
 
        If i = 0 Then
            sql = "SELECT * FROM Datenbank WHERE ((Datenbank.[TT-Nr]) LIKE '" & _
              sEing & "*') ORDER BY Datenbank.[TT-Nr];"
 
            Set DB = CurrentDb
            DB.QueryDefs("A_Komponentendetail").sql = sql
            Set DB = Nothing
 
        ElseIf i = 1 Then
            sql = "SELECT * FROM Datenbank WHERE ((Datenbank.[Referenztest])" & _
              "LIKE '" & sEing & "*') ORDER BY Datenbank.[Referenztest];"
 
            Set DB = CurrentDb
            DB.QueryDefs("A_Komponentendetail").sql = sql
            Set DB = Nothing
        End If
 
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel