WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 16.07.2004, 13:42   #1
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard jetzt VBA :) Problem mit stringübergabe

Ich habe mittels Stringverknüpfung meinen Suchstring für recordset.FindFirst gebastelt:

Code:
"P1Name LIKE 'D*' "

jetzt möchte ich diesen Suchstring an das Recordset übergeben.
Der String liegt auf der Variablen strSuch

also:

Code:
strfilter = strsuch
rst.FindFirst strfilter

'Ausgabe ins Feld txt_Filter
txt_filter = rst!P1NAME
leider fehlt da lt. VBA ein Argument ... sollte aber alles da sein.
Wenn ich den String manuel nach strfilter kopier (also strfilter="P1Name LIKE 'D*'") dann geht aber alles


was ist da falsch?

mfg
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 16.07.2004, 16:29   #2
unicornat
Newbie
 
Registriert seit: 14.06.2004
Alter: 56
Beiträge: 10


Standard Abfrage

Hi !

habe in meinem Programm etwas Ähnliches:

Nummer = "ABC123"
rst.FindFirst "[Asset_Number] = '" & Nummer & "'"


umgewandelt bei
Nummer = "ABC*"
rst.FindFirst "[Asset_Number] Like '" & Nummer & "'"

Ich glaube das ist so ein Problem mit Variable nehmen oder deren Inhalt nehmen...

Versuchs mal so wie bei mir (also Variablenname rausnehmen aus dem String und per & verbinden)
unicornat ist offline   Mit Zitat antworten
Alt 16.07.2004, 18:59   #3
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Ich verwende eigentlich nur diese Varianten

rst.Find "Feld = '" & strSuchbegriff & "'"
rst.Find strFeld & " = '" & strSuchbegriff & "'"

Es müßte aber auch funktionieren, wenn der ganze Ausdruck in einer Variablen steht.

Laß dir bei deinen beiden Version vor dem Aufruf von Find den String im Direktfenster ausgeben, und vergleiche die Inhalte. Achte besonders auf die Hochkommas.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 19.07.2004, 09:19   #4
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard

lansam werd ich verwirrt (siehe Bild!)

hier nochmal mein Code, mittlerweile bin ich schon durcheinander



Code:
Private Sub Befehl109_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strfilter As String
Dim str As String
Dim such As String

Set db = CurrentDb()
Set rst = db.OpenRecordset("qryTest")

str = txt_suchnam 'man gibt zb D* in die Textbox ein

'Testweise Ausgabe in einer TXTBOX
txt_such = """P1Name LIKE" & " " & str & " """
'Ende

strfilter = "P1NAME = '" & txt_such & "'" 'Filterstring
rst.FindFirst strfilter

'Ausgabe an Textfeld
txt_filter = rst!P1NAME

While Not rst.NoMatch
Debug.Print rst("P1Name")
rst.FindNext strfilter
Wend
rst.Close
End Sub

wenn wer zeit hat
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 19.07.2004, 13:29   #5
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Mit den Hochkommas stimmt wahrscheinlich etwas nicht.

Vor
'Ausgabe an Textfeld
txt_filter = rst!P1NAME
mußt du außerdem prüfen, ob die Suche erfolgreich war. Wenn die Suche nicht erfolgreich war, werden falsche Daten ausgegeben.

Schick mir deine Access-DB im 97er-Format.
Ich schau mir das morgen an. Das gibts doch nicht, daß das nicht funktioniert.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 19.07.2004, 13:49   #6
unicornat
Newbie
 
Registriert seit: 14.06.2004
Alter: 56
Beiträge: 10


Standard

txt_such = """P1Name LIKE" & " " & str & " """
'Ende

strfilter = "P1NAME = '" & txt_such & "'" 'Filterstring

Wozu weist Du in die Variable txt_such nochmals P1NAME zu?
Ausserdem geht das so sicher nicht, denn 2mal " hintereinander beendet ja schon wieder den String, d.h. in txt_such steht nur "" (also nix)

strfilter = "P1NAME LIKE '" & txt_such & "' "

reicht doch?
wobei txt_such = "D*" oder was auch immer
unicornat ist offline   Mit Zitat antworten
Alt 19.07.2004, 14:08   #7
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von unicornat
txt_such = """P1Name LIKE" & " " & str & " """
'Ende

strfilter = "P1NAME = '" & txt_such & "'" 'Filterstring

Wozu weist Du in die Variable txt_such nochmals P1NAME zu?
Ausserdem geht das so sicher nicht, denn 2mal " hintereinander beendet ja schon wieder den String, d.h. in txt_such steht nur "" (also nix)

strfilter = "P1NAME LIKE '" & txt_such & "' "

reicht doch?
wobei txt_such = "D*" oder was auch immer
das war nur, weil ich daswoanders zur Kontrolle ausgegeben habe!

werd ich geich mal probieren, danke!
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 19.07.2004, 14:29   #8
deleted_150216
Inventar
 
Registriert seit: 28.08.2001
Ort: Österreich
Beiträge: 1.597


Standard

mein tipp

http://www.activevb.de/
deleted_150216 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:19 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag