Domino 9 und frühere Versionen > ND8: Entwicklung
SearchFormula
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