kurzen und langen variablen-string vergleichen

19/05/2008 - 07:37 von jensspeedy | Report spam
also: ich hole mir aus word heraus daten aus einer db - fünktioniert
auch supi
nun muss ich aber zahlenpaare suchen, bei denen es mehre antworten
gibt und ich muss sozusagen das höchste wàhlen

beispiel:

ich suche nach Nummer `70 und Nummer2 = 3101 (vorgabe) - die
hauptdaten werden über diese zahlen gesucht aber zusatzdaten eben
woanders *schnief*

da aber unter diesen zahlenwerten nicht die gesuchten, die ich
brauche, zu finden sind - das verhàltniss bei Nummer aber immer
(-1000) ist, habe ich folgenden code gebastelt der lt. msgBox auch den
richtigen wert liefert
[code]

Dim Nummer3 As Integer
Dim Nummer4 As String
Dim Nummer5 As Integer

Nummer3 = (Nummer - 1000)
Nummer4 = (Nummer2 / 100)
Nummer5 = VBA.Left(Nummer4, VBA.InStr(1, Nummer4, ",") - 1)
Set objDBEngine = CreateObject("DAO.DBEngine.36")
Set objDBEngine = OpenDatabase("C:\z_vorlagen\db_hv
\Datenbank1.mdb")
Set objRS = objDBEngine.OpenRecordset("SELECT * FROM z_adressen "
& _
"WHERE Spalte8=" & Nummer3
& _
" AND Spalte20=" &
Nummer5, _
dbOpenDynaset, dbSeeChanges)
If objRS.RecordCount >= 0 Then
ReplaceBookmarkText_1 "rechnungswert", objRS!Spalte40 & ""
'...bla, bla, bla[/code][size]ich suche also eigentlich
nach Nummer3 = 5070 und Nummer5 = 31

nun gibt es aber in der spalte20 der Nummer5 mehre werte mit 31 am
ANFANG - also 3104, 3107, 3121 oder 3188 z.b.

wie schaffe ich es nun, dass die werte verglichen werden und mir die
db die daten aus dem sozusagen "höchsten" zahlenpaar - hier als 5020 -
3188 ausgiebt

so lange mach ich nun auch noch kein vba mit word und access - hier
bin ich einfach überfordert

kann mir da einer helfen?
 

Lesen sie die antworten

#1 Wolfram Jahn
19/05/2008 - 23:34 | Warnen spam
jensspeedy schrieb:

kann mir da einer helfen?



Mal sehen:

Ich habe tatsàchlich versucht, Deiner Beschreibung zu folgen.
Dafür gebührt mir sicher einiges Lob. Wenn Du sie mit etwas innerem
Abstand nochmal liest, solltest Du merken, warum.

Nach dem dritten sorgfàltigen Lesen bin ich immerhin bis zu der 5020
gekommen - aber da war dann endgültig Schluss; wo kommt die 5020 her?
Oder ist das ein Tpypflehre?

Wenn es ein Tippfeghler ist und Du nach dem Paar 5070/3188 suchst, dann
musst Du nicht an VBA, sondern an Deinem SQL feilen:


SELECT *
FROM z_adressen
WHERE (((z_adressen.spalte20) Between 3100 And 3199)
AND ((z_adressen.spalte8)P70))
ORDER BY z_adressen.spalte20 DESC;


und dann den ersten Record verwenden, denn es wird ja nach spalte20
absteigend sortiert, womit der höchste Wert als erster erscheint.

Ähnliche fragen