Domino 9 und frühere Versionen > ND8: Entwicklung

SearchFormula

(1/2) > >>

sja:
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

Mitch:
Heyho,

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

Also:


--- Code: ---RB_Art = System P
--- Ende Code ---

Zu:


--- Code: ---RB_Art = "System P"
--- Ende Code ---

Gruß,

Mitch

sja:
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:
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 & {")}
--- Ende Code ---

Edit: Formel abgekürzt um Forenbreite nicht zu sprengen.

sja:
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??

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln