Autor Thema: SearchFormula  (Gelesen 2356 mal)

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
SearchFormula
« am: 06.01.12 - 12:11:29 »
Hallo liebe AtnotesFreunde,

bitte um Hilfe, da ich schon verzweifelt bin, die Fehler im meiner SearchFormel zu finden:

Function searchFormula(Per As String)As String

   If Per = "jährlich" Then
      searchFormulaAufgabe = {(Form = "Aufgabe")&(RB_Per = "jährlich")&(Kontrakt_Nr = }& tmpKontrakt_Nr & { )& (Auftrag_Nr = } & tmpAuftrag_Nr & { )&(Jahr = }& aktJahr & { )&( RB_Art =}& tmpRB_ART & { )}
      MessageBox searchFormulaAufgabe

...

bei Ausfüharen bekomme ich folgendes: s. Anhänge

Vielen Dank für jede Hilfe im Voraus

Liebe Grüße

Sofia
« Letzte Änderung: 06.01.12 - 15:21:22 von sja »

Mitch

  • Gast
Re: SearchFormula
« Antwort #1 am: 06.01.12 - 12:59:34 »
Heyho,

also mindestens im letzten Abschnitt stimmt was nicht, da fehlen die Zeichenkettenbegrenzer.

Also:

Code
RB_Art = System P

Zu:

Code
RB_Art = "System P"

Gruß,

Mitch

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: SearchFormula
« Antwort #2 am: 06.01.12 - 13:38:25 »
Hallo Mitch,

herzlichen Dank für Deine Hilfe. Du hast absolut Recht: die Variable tmpRB_Art ist tatsächlich String

...
Dim tmpRB_Art As String      'Form "Vertrag" Bereitschaft-Art
...
For i = 1 To 13
...                           
   Call RB_Art(i)   'setzt tmpRB_Art Funktion für Berechnung des Rufbereitschaft-Artes                        
   MessageBox tmpRB_Art
...
Next

Function RB_Art (i As Integer) As String
   Select Case i
      Case 1 : tmpRB_Art = "Broadcasting"         
      Case 2 : tmpRB_Art = "RZ Nürnberg"         
      Case 3 : tmpRB_Art = "System i"         
      Case 4 : tmpRB_Art = "System P"            
      Case 5 : tmpRB_Art = "SBV+"               
      Case 6 : tmpRB_Art = "SBV+Backup"         
      Case 7 : tmpRB_Art = "SSC"               
      Case 8 : tmpRB_Art = "Storage"            
      Case 9 : tmpRB_Art = "TSM"            
      Case 10 : tmpRB_Art = "VMware"            
      Case 11 : tmpRB_Art = "NetApp/nSeries"      
      Case 12 : tmpRB_Art = "System x/Microsoft"         
      Case 13 : tmpRB_Art = "SAP"                  
   End Select   
End Function
         

In Debugger wird der Wert der Variable als String eingezeigt (s. Anhang).

Warum kommt die nicht als String in der SearchFormula? Was mache ich falsch?



Mitch

  • Gast
Re: SearchFormula
« Antwort #3 am: 06.01.12 - 13:42:36 »
Doch doch, sie kommt als String in die Formel, sonst würde es schon früher knallen.

Aber... in der Formel wird sie dann nicht mehr als String deklariert und darum knallt es beim Ausführen der Formel.

Du musst also die Anführungszeichen selber dazu schreiben. So zum Beispiel:

Code
searchFormulaAufgabe = {(blahblahblah) & (RB_Art = "} & tmpRB_ART & {")}

Edit: Formel abgekürzt um Forenbreite nicht zu sprengen.
« Letzte Änderung: 06.01.12 - 13:44:48 von Mitch »

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: SearchFormula
« Antwort #4 am: 06.01.12 - 14:12:59 »
perfekt, es funktioniert (s. Anhang), herzlichen Dank.

Aber ein Problem habe ich trotzdem.
Mir der SearchFormula soll überprüft werden ob ein Dokument mit diesen Werten existiert schon, wenn nicht, dann soll erstellt werden.

        Dim dcAufgabe As NotesDocumentCollection

   Call searchFormula(tmpRB_Per)
   Set dcAufgabe = db1.Search(searchFormulaAufgabe , Nothing ,0)
   If dcAufgabe.Count = 0 Then   
   ...
   ...
   End if
Und obwohl das Dokument mit diesen Werten existiert schon, weiß ich genau, habe auch mit Dokument-Eigenschaften die Werte überprüft, trotzdem wird das Dokument mit dieser SearchFormul nicht gefunden??

Glombi

  • Gast
Re: SearchFormula
« Antwort #5 am: 06.01.12 - 14:29:54 »
Du kannst ja mal eine Ansicht erstellen, die die Searchformel als Zugriffsformel hat und nachsehen, ob das Dokument dort auftaucht. Falls nicht, stimmt was mit der Formel nicht. Vielleicht ist ja irgendeines der Zahlfelder doch ein Text?

Andreas

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: SearchFormula
« Antwort #6 am: 06.01.12 - 14:41:12 »
Danke schön, Andreas. Eine sehr gute Idee. Ich probiere es.

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: SearchFormula
« Antwort #7 am: 06.01.12 - 15:20:51 »

Ihr habt mein Leben gerettet! Alles funktioniert!

searchFormulaAufgabe = {(Form = "Aufgabe")&(RB_Per = "jährlich")&(Kontrakt_Nr = "}& tmpKontrakt_Nr & {" )& (Auftrag_Nr = "} & tmpAuftrag_Nr & {" )&(Jahr = }& aktJahr & { )&( RB_Art ="}& tmpRB_ART & {" )}

Noch mal herzlichen Dank Mitch, Andreas,
ich liebe atnotes, hat mir schon viel Mal geholfen!

Sofia

Glombi

  • Gast
Re: SearchFormula
« Antwort #8 am: 06.01.12 - 15:24:03 »
Jeden Tag eine gute Tat  :)

Schön dass es funktioniert.

Andreas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz