Das Notes Forum

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.

Gruß
Spalter

----------------------------Schnipp schnipp-----------------------

Dim Session As Object
Set Session = CreateObject("Notes.NotesSession")

Dim db As Object
Dim dc As Object
Dim view As Object
Dim doc As Object



Dim PruefFeldNr As String
Dim Feld2 As String
Dim Feld3 As String
Dim Feld4 As String
Dim Feld5 As String
Dim key As String
Dim AAA As String



Dim itermax As Integer

itermax = InputBox("Geben Sie die Zahl der Iterationen an:")


Set db = Session.GETDATABASE("", "database.NSF")

If db.IsOpen = True Then
          'Fertig zum mailen!
     Else
         db.Open
     End If

x = 5

While x < itermax

key = Cells(x, 1)


Feld2 = Cells(x, 2)
Feld3 = Cells(x, 3)
Feld4 = Cells(x, 4)
Feld5 = Cells(x, 5)

MsgBox key

    'searchFormula$ = " PrfFeldNr = ""11.035.T001"" "
    'Die SearchFormular funzt - Ergebnis 1 Doc.

    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

    Set doc = dc.GetFirstDocument

y = 5
While Not doc Is Nothing

doc.Teil_Sachgebiet = Feld2


Call doc.Save(True, True)


Set doc = dc.GETNEXTDOCUMENT(doc)
y = y + 1
Wend

x = x + 1

Wend

----------------------------Schnipp schnipp-----------------------

Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: atbits am 17.05.10 - 14:53:59
Versuche mal
Code
searchFormula$ = "PrfFeldNr = """" & key & """""

Achte auch drauf, dass keine unsinnigen Leerzeichen in Deinem Suchstring sind.

Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Axel am 17.05.10 - 15:19:23
Ich hab's mal probiert (Excel 2007 / Notes 8.5.1) und so hat's funktioniert:

...

x = 1

key = Cells(x, 1)

searchFormula$ = "PrfFeldNr = " & Chr$(34) & key & Chr$(34)

...

Axel
Titel: Re: Verwendung von Strings in der DB-Search-Methode
Beitrag von: Spalter am 17.05.10 - 15:27:13
 :)

Hallo Axel,

jetzt hats endlich gefunzt. Danke - nächstes Mal kommt der Code direkt mit - sorry.


Danke auch an alle anderen.

Gruß
Spalter