Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: sja am 01.09.05 - 15:16:41

Titel: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 15:16:41
Hallo @All,

wieder habe ich das Problem mit searchFormula. Es wäre sehr nett, wenn jemand mir helfen würde und sagt ob ich die folgende richtig kodiert habe   

...
Dim tmpBereich As String
tmpBereich = iudoc.FieldGetText("Bereich")
...

Function LoadAll(AWNTitel As String)

  If tmpBereich = "" Then
      searchFormula = {projekt = "} + AWNTitel + {"}   
                                              ‘Werden Doku für alle Bereiche ausgewählt
  Else
       searchFormula = {projekt = "} + AWNTitel + {"& bereich = " }+ tmpBereich + {"}   
                                              ‘Werden Doku nur für den tmpBereich ausgewählt
  End If
....


Debugger zeig, dass die Variable tmpBereich und AWNTitel richtig gesetzt sind.

Im ersten Fall in Debugger wurde die searchFormula  so angezeigt

“projekt = ““ Test-Projekt“““

und die Doku richtig nach AWNTitel für alle bereiche ausgewählt wurden. Also kein Problem

Im Else Fall sieht  die searchFormula im Debugger so aus

“projekt = ““ Test-Projekt““& bereich = ““Test-Bereich“““

und es werden keine Doku ausgewählt, obwohl ich weiss genau, dass für den projekt und und den bereich gibt es Doku in der Ansicht. Ich weiss nicht weiter.



Schönen Dank im Voraus.

Viele Gruesse
Sofia
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: robertpp am 01.09.05 - 15:37:42
Hast du auf die Groß-Kleinschreibung geachtet nachdem was du suchst?

und was machst du mit der SearchFormula?

Verwedest du sie in eine db.search? Wenn ja dann fehlt dir SELECT.
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: umi am 01.09.05 - 15:39:52
Volltext oder einfache Search?
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 15:47:18
Hallo robertpp,
hallo Umi,

erst vielen Dankt für eure Hilfe. Es ist db.search


...
Dim tmpBereich As String
tmpBereich = iudoc.FieldGetText("Bereich")
...

Function LoadAll(AWNTitel As String)

  If tmpBereich = "" Then
      searchFormula = {projekt = "} + AWNTitel + {"}   
                                              ‘Werden Doku für alle Bereiche ausgewählt
  Else
       searchFormula = {projekt = "} + AWNTitel + {"& bereich = " }+ tmpBereich + {"}   
                                              ‘Werden Doku nur für den tmpBereich ausgewählt
  End If



  Set collectionAWN = dbAWN.Search(searchFormula, Nothing, 0)
   
  Set docAWN = collectionAWN.GetFirstDocument
   
  If Not(collectionAWN.Count = 0) Then   
      
     While Not(docAWN Is Nothing)
         ...
         ...
         Set docAWN = collectionAWN.GetNextDocument(docAWN)
     Wend


Wo soll SELECT kommen?
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 16:10:11
habe auch die Groß-Kleinschreibung überprüft. Die Felder
projekt
und
bereich
sind richtig geschrieben
 ???
 :'(
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: umi am 01.09.05 - 16:18:15
Nimm doch mal so ne Searchformula aus dem Debugger und pack sie in die Selection einer View. Nur um sicher zu sein, dass deine Abfrage auch Resultate bringt.
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 16:24:29
Vielen Dank @umi für den Tipp. Ich probiere das sofort
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: robertpp am 01.09.05 - 16:34:13
Stop einmal:

Wenn du ein db.search machst dann erwartet es das wie ich schon gesagt habe auch ein SELECT vorhanden ist!
Ist aber bei dir nicht also noch ein select davor und dann sollte es gehen!!

searchFormula = {SELECT projekt = "} + AWNTitel + {"}   
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: umi am 01.09.05 - 16:37:31
Laut Designerhilfebeispiel erwartet es keine Select.

Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 16:37:51
in der Ansicht mit der Auswahlformel

SELECT (projekt = "Test-Projekt") & (bereich = "Test-Bereich")

sind alle Dokument richtig angezeigt


Panic  :'(
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: umi am 01.09.05 - 16:42:00
Nach der Zeile:
Set collectionAWN = dbAWN.Search(searchFormula, Nothing, 0)
ist  CollectionAWN.count = 0 ?

Notes Komplett schliessen und nochmals probieren ?
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: koehlerbv am 01.09.05 - 16:46:54
Don't panic, Sofia  ;)

Schau Dir Deine Formel noch einmal ganz genau an:

searchFormula = {projekt = "} + AWNTitel + {"& bereich = " }+ tmpBereich + {"}

..bereich = " } + tmpBereich + {"}

Da ist ein Leerzeichen zuviel und ergibt so
bereich = " Testbereich"

Und "Testbereich" ist nicht gleich " Testbereich".

HTH,
Bernhard
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 16:51:12
habe auch mit SELECT ausprobiert, mit dem gleichen Ergebniss

und wie gesagt
die code: searchFormula = {projekt = "} + AWNTitel + {"}    funktioniert ohne Problem
die code searchFormula = {projekt = "} + AWNTitel + {"& bereich = " }+ tmpBereich + {"}    
findet nichts
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: koehlerbv am 01.09.05 - 16:59:46
Wie schon geschrieben:
searchFormula = {projekt = "} + AWNTitel + {"& bereich = "}+ tmpBereich + {"}     statt
searchFormula = {projekt = "} + AWNTitel + {"& bereich = " }+ tmpBereich + {"}     verwenden.

Bernhard
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: sja am 01.09.05 - 17:08:15
Oh Gott, das war's leerzeichen. Jetzt alles funktioniert!

Bernhard, ich bin so unendlich dankbar, dass mit den Wörter nicht ausdrucken kann! Du bist ja eine Perle!
Du hast mich wieder gerettet. Die Aufgabe soll zu morgen fertig sein, und ich bin gerettet.

Herzlichen Dank und schoene Gruesse
Sofia
Titel: Re: Bitte Hilfe!! ...searchFormula...
Beitrag von: koehlerbv am 01.09.05 - 17:30:51
Ni sa schto, Sofia  :)

Kennst Du das nicht: Du gehst an einem anderen Monitor vorbei, liest den Text dort gar nicht bewusst und tippst auf ein Wort: "Bei 'Rasemäher' hast Du das "n" vergessen." Und danach prüfst Du einen eigenen Text auf Fehler und überliest dreimal den gleichen Tippfehler (obwohl Du weisst, wie man das Wort korrekt schreibt).

Ich habe einfach Deine Formel in meine test-DB geworfen und daraus folgendes gemacht:
Code
Sub Click (Source As Button)
	
	Dim AWNTitel As String
	Dim tmpBereich As String
	Dim searchFormula As String
	
	AWNTitel = "_AWNTitel_"
	tmpBereich = "_Bereich_"
	
	searchFormula = {projekt = "} + AWNTitel + {"& bereich = " }+ tmpBereich + {"}
	
	Messagebox searchFormula
	
End Sub

In der Regel wird in der Messagebox shr schnell klar, wo der Hase im Pfeffer liegt. Für mich zumindest ist das in diesem Fall aussagekräftiger als der Entwanzer.

Einen schönen Feierabend wünscht
Bernhard