PDA

Vollständige Version anzeigen : Funktion umschreiben (statt in einem Feld in 2 Feldern suchen)


Alexandra, die zweite
05.10.2002, 10:09
Hallo,

mit folgendem Code lasse ich mir in einer Tabelle Kunde, Lieferdatum und Material zu einer eingegebenen Seriennummer suchen (Funktion wird nach Verlassen des Seriennummer Feldes ausgelöst). Jetzt gibt es in der Tabelle 2 Felder (Seriennummer und Seriennummer2) in denen Seriennummern stehen (alt und neu). Ich würde jetzt gerne das Feld Seriennummer durchsuchen lassen, wenn dort ein Eintrag gefunden wird, sollen mir die entsprechenden Daten angezeigt werden. Wird nichts gefunden soll Seriennummer2 durchsucht werden und im Falle einer Übereinstimmung die Daten angezeigt werden. Wird in beiden Feldern nichts gefunden soll "not found" angezeigt werden.

Kann mir jemand helfen die Funktion entsprechend umzuschreiben? Danke!

Gruß,
Alex

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre>
<span class="TOKEN">Dim</span> objRS <span class="TOKEN">As</span> Object, bsuche <span class="TOKEN">As</span> Boolean, coltab <span class="TOKEN">As</span> <span class="TOKEN">New</span> <span class="TOKEN">Collection</span>
&nbsp;
coltab.Add &quot;Tabelle1&quot;
&nbsp;
bsuche = <span class="TOKEN">True</span>
<span class="TOKEN">While</span> bsuche <span class="TOKEN">And</span> (coltab.Count &gt; 0)
<span class="TOKEN">Set</span> objRS = CurrentDb.OpenRecordset(&quot;SELECT * FROM [&quot; &amp; coltab.Item(1) &amp; &quot;] WHERE Seriennummer='&quot; &amp; Seriennummer.Value &amp; &quot;';&quot ;)
<span class="TOKEN">With</span> objRS
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> (.BOF <span class="TOKEN">Or</span> .EOF) <span class="TOKEN">Then</span>
bsuche = <span class="TOKEN">False</span>
Kunde.Value = .Fields(&quot;Kunde&quot ;) .Value
Lieferdatum.Value = .Fields(&quot;Lieferdatum&quot ;) .Value
Material.Value = .Fields(&quot;Material&quot ;) .Value
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
.Close
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
coltab.Remove 1
<span class="TOKEN">Wend</span>
<span class="TOKEN">If</span> bsuche <span class="TOKEN">Then</span>
<span class="REM"> ' ... daten nicht gefunden ....</span>
Kunde.Value = &quot;not found&quot;
Lieferdatum.Value = &quot;not found&quot;
Material.Value = &quot;not found&quot;
Cancel = <span class="TOKEN">True</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span></pre></div>

rollo
05.10.2002, 14:27
Hallo Alex,

versuch mal folgenden Code, den ich leider nicht testen konnte:

Dim objRS As Object, bsuche As Boolean, coltab As New Collection

coltab.Add "Tabelle1"

bsuche = True
While bsuche And (coltab.Count > 0)
Set objRS = CurrentDb.OpenRecordset("SELECT * FROM [" & coltab.Item(1) & "] WHERE Seriennummer='" & Seriennummer.Value & "';"
With objRS
If Not (.BOF Or .EOF) Then
bsuche = False
Kunde.Value = .Fields("Kunde" .Value
Lieferdatum.Value = .Fields("Lieferdatum" .Value
Material.Value = .Fields("Material" .Value
End If
.Close
End With
coltab.Remove 1
Wend

coltab.Add "Tabelle1"
While bsuche And (coltab.Count > 0)
Set objRS = CurrentDb.OpenRecordset("SELECT * FROM [" & coltab.Item(1) & "] WHERE Seriennummer2='" & Seriennummer.Value & "';"
With objRS
If Not (.BOF Or .EOF) Then
bsuche = False
Kunde.Value = .Fields("Kunde" .Value
Lieferdatum.Value = .Fields("Lieferdatum" .Value
Material.Value = .Fields("Material" .Value
End If
.Close
End With
coltab.Remove 1
Wend

If bsuche Then
' ... daten nicht gefunden ....
Kunde.Value = "not found"
Lieferdatum.Value = "not found"
Material.Value = "not found"
Cancel = True
End If


Gruß
Ralf.

Alexandra, die zweite
05.10.2002, 14:57
hi,

args, ich hatte auch schon probiert den Part mit der Suche im Seriennummern Feld einfach zu kopieren und auf Seriennummer2 zu ändern. Dabei hatte sich nur ein Fehler eingeschlichen, darum hat's nicht funktioniert

Aber siehe da, es geht doch. Dank dir!!!!

Gruß,
Alex