Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Spalter am 17.05.10 - 08:56:00
Titel: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Spalter am 17.05.10 - 08:56:00
:( Hallo zusammen,
habe nach längerer Zeit noch mal ein Problem mit der DB-Search-Methode.
Hintergrund:
Ich möchte dieverse Felder in Notes-Docs aus einem Excelmacro heraus bestücken. Die Feldwerte liegen als Excel-Datei vor. In der ersten Spalte ist der eindeutige Schlüssel zur Idendifikation der Notes-Dokumente - Aufbau als String "xx.xxx.Txxx".
Umsetzung:
Ich versuche das ganze aus dem Macro mit der DB-Search-Methode anzugehen. Verwende ich diesen Search-String, funzt das einwandfrei. Ich erhalte genau einen Treffer - so wie es sein sollt.
searchFormula$ = " PrfFeldNr = ""xx.xxx.Txx"" "
Versuche ich hingegen, den Schlüssel aus der ersten Spalte der Excel-Datei zu ziehen (die Zellen sind als Text formatiert),
A = CStr(Cells(x, 1))
searchFormula$ = " PrfFeldNr = A "
erhalte ich einen Count-wert von z.B. 42, obwohl in der Notes-DB nur ein Dokument mit dem Schlüssel existiert.
Welchen Fehler begehe ich eventuell? Wie kann ich die Suchwerte richtig einlesen? Gibt es eine Alternative?
Bin für jede Antwort dankbar.
Gruß Spalter
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Peter Klett am 17.05.10 - 08:59:09
searchFormula$ = {PrfFeldNr = "} & A & {"}
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Spalter am 17.05.10 - 09:04:23
:-\ Hallo Peter,
danke für die schnelle Antwort, aber die geshweifte Klammer schuckt VBA nicht. Da bekomme ich einen Syntaxfehler.
Gruß Spalter
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: dirk_2909 am 17.05.10 - 09:12:24
Was ist mit der Pipe ("|") ?
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Spalter am 17.05.10 - 09:30:14
:(Hallo Dirk,
mit der Pipe funzt das leider auch nicht - wieder Sytaxfehler.
Gruß Spalter
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Mitch am 17.05.10 - 10:19:35
Ich versuchs auch mal:
searchFormula$ = "PrfFeldNr = \"" & A & "\""
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: atbits am 17.05.10 - 10:28:27
War es nicht einfach nur "" ohne \ davor?
Grüße David
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Mitch am 17.05.10 - 10:36:25
Da hast du recht! Also:
searchFormula$ = "PrfFeldNr = """ & A & """"
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: BigWim am 17.05.10 - 10:50:13
Ansonsten würde ich es so probieren:
searchFormula$ = "PrfFeldNr = " + chr$(34) + A +chr$(34)
Markus
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Spalter am 17.05.10 - 11:23:06
Hallo Mitch,
wenn ich Deinen Vorschlag nehme, erhalte ich einen Notes Error Formelfehler. Die Fomel läuft durch, wenn jeweils eines der inneren Anführungszeichen wegnehme. Die Doc-Collection ist aber leider leer.
Gruß SPalter
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: atbits am 17.05.10 - 11:37:26
Na dann ist Debugging angesagt ;-)
Gib Dir mal mit Msgbox den Searchstring aus, was kommt da? Müßte diese Search Deiner Meinung nach etwas finden?
Poste mal den gesamten VBA-Code.
Ansonsten: Gehe doch einfach über einen Notes-Link. notes:\\meinserver\meinedb\viewsortiertnachkey\key Wie wäre das?
Grüße David
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Axel am 17.05.10 - 13:05:55
Ohne weitere Info's wie den Code das Makros ist das nur ein Gestochere im Nebel.
Axel
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Spalter am 17.05.10 - 14:37:15
Hallo Axel, ???
Ist natürlich klar. Vielleicht verflüchtigt sich der Nebel ein wenig. Das Problem besteht darin, dass ich eine dynamische Suche durchführen möchte, die bei jeder Iteration einen neuen Wert aus einer Exceltabelle zieht und diesen dann mittels Search in der Notes-DB auffinden soll.
searchFormula$ = " PrfFeldNr = ""key"" " 'Die SearchFormular funzt nicht - Ergebnis 42 Docs. 'Der Wert der Searchformula$ ist in diesem Fall PrfFeldNr = Key, nicht aber der zugeweiesene Wert.
Set dc = db.Search(searchFormula$, Nothing, 0)
MsgBox dc.Count
MsgBox searchFormula$
If dc.Count = 0 Then MsgBox ("Ihre Auswahl erfolgte ohne Treffer") End If