Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Spalter am 22.11.07 - 16:25:14

Titel: Mit Search-Methode aus Excel importieren
Beitrag von: Spalter am 22.11.07 - 16:25:14
Hallo zusammen,

kann man mit com aus Excel heraus die Search-Methode anwenden.

Bin bisher alle Docs der Notes DB durchgelaufen und habe über eine if-Abfrage die betreffenden Docs selektiert.

Möchte jetzt aber die Docs per Search-Methode ziehen. Dabei tritt in VBA das Problem auf, daß die @-Funktionen in der Searchformula nicht interpretiert werden können.

Was mache ich falsch oder funzt das nicht?

Bin für jede Antwort dankbar

Gruß
Spalter
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: MadMetzger am 22.11.07 - 16:32:47
Kommt eine Fehlermeldung? Was für eine Suchformel hast du? Ich glaube zumindest, dass search auch per COM funken müsste. Was passiert, wenn du die Suchformel in eine Ansicht als Auswahl packst?
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Spalter am 22.11.07 - 16:44:42
 :(

Hallo MadMetzger,

ich kann in der Notes-DB nichts ändern. Muß von extern ran, in dem Fall über Excel.

Der VBA-Editor meckert, wenn ich @-Funktinen in die Searchformel packe. Die brauche ich aber, um z.B. ein Zahlenfeld in einen String umzuwandeln.

Gruß
Spalter
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: MadMetzger am 22.11.07 - 16:57:14
Und was genau meckert er? Kann es vielleicht auch einfach nur mit irgendwelchen Anführungsstrichen-Problemen zusammenhängen?

Hm... Kannst du vielleicht eine private Ansicht in der DB anlegen zum Testen? Das würde die Sache zumindest erleichtern... Oder kommst du überhaupt nicht an die DB ran?

Du kannst mich übrigens auch mit Markus ansprechen...  ;) Und wie spricht man dich an?
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: m3 am 22.11.07 - 16:58:55
1) Code!

2) Suchausdruck!
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Axel am 22.11.07 - 19:59:53
Ich glaube zumindest, dass search auch per COM funken müsste.

Das müsste nicht nur, dass funktioniert. Ich habe das selbst mal gemacht.

Wie Martin schon geschrieben hat, ohne Code (mit Suchformel) kommen wir nicht weiter.


Axel
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: MadMetzger am 22.11.07 - 20:02:13
Das sehe ich genauso... Ich wollte nur nicht sagen, das geht, ohne selbst in die Doku geschaut haben zu können.
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Spalter am 23.11.07 - 10:08:17
 ???

Hallo zusammen,

hier ist mal der Code des Macros.

Wenn ich die Suchformel aktiviere, bekomme ich einen Syntax-Fehler. Weder die Klammer noch die @-Zeichen können interpretiert werden.


Bin für jede Antwort dankbar.

Gruß
Spalter

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

Dim db As Object
Dim dc As Object
Dim dateTime As Object
Dim view As Object
Dim doc As Object
Dim x As Long
Dim Feld1 As Object
Dim Feld2 As Object
Dim Feld3 As Object
Dim Feld4 As Object
Dim Feld5 As Object
Dim Feld6 As Object
Dim rwindex As Integer
Dim colindex As Integer
Dim Formel As String
Dim Formel1 As String




'++++++++++++++++++++++


Dim Kinfo As String
Dim Kf As String



'geplant:
'*******************************************************
'searchFormula$ = {@Left(@Text(Feldx);2) = "99"}
'Set dc = Wdb.Search(searchFormula$, dateTime, 0)
'Set doc = dc.Getfirstdocument
'*******************************************************

'Bisher: durchlaufen aller Docs einer View


Set db = Session.GETDATABASE("server", "verzeichnis\db.NSF")
'Set db = Session.GETDATABASE("", "db.NSF")


Set view = db.GETVIEW("(AKTIV)")
Set doc = view.GETFIRSTDOCUMENT
x = 2
While Not (doc Is Nothing)



Set Feld1 = doc.GETFIRSTITEM("Feld1")
Kinfo = Right(Left(Feld1.Text, 5), 2)

Set Feld2 = doc.GETFIRSTITEM("Feld2")
Set Feld3 = doc.GETFIRSTITEM("Feld3")
Set Feld6 = doc.GETFIRSTITEM("Feld6")
Kf = Feld6.Text
Set Feld4 = doc.GETFIRSTITEM("Feld4")
Set Feld5 = doc.GETFIRSTITEM("Feld5")
If Kinfo = "99" And Kf = "11111111" Then
Cells(x, 1) = Feld1.Text
Cells(x, 2) = Feld3.Text
Cells(x, 3) = Feld4.Text
Cells(x, 4) = Feld6.Text
'Cells(x, 5) = Feld6.Text

If Feld5.Text = "" Then
Feld5.Text = 0
Cells(x, 7) = "kein Wert"
End If

Cells(x, 12) = Feld5.Text
Cells(x, 14) = Kinfo
x = x + 1
End If

Set doc = view.GETNEXTDOCUMENT(doc)
Wend

End Sub
   



Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Axel am 23.11.07 - 10:29:45
Versuch's mal so:

...
searchFormula$ = "@Left(@Text(Feldx);2) = ""99"""
Set dc = Wdb.Search(searchFormula$, dateTime, 0)
....

Axel
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: MadMetzger am 23.11.07 - 10:30:55
Das liegt wohl an der Art, wie Stringliterale in VBA aussehen müssen. Er sagt mir klar, dass die geschweifte Klammer fehl am Platze ist. Du musst das Literal in Anführungszeichen schreiben und die innerhalb des Literals verwendeten Anführungszeichen über deren Zeichencode einbinden.

Mit den Anführungszeichen geht wohl auch auf die einfachere Art von Axel...
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Spalter am 27.11.07 - 11:23:02
Versuch's mal so:

...
searchFormula$ = "@Left(@Text(Feldx);2) = ""99"""
Set dc = Wdb.Search(searchFormula$, dateTime, 0)
....

Axel


 :( Hallo Axel,

das mit den Anführungszeichen funzt so leider nicht. Da habe ich einen Syntax-Fehler.

Gruß
Spalter

Das liegt wohl an der Art, wie Stringliterale in VBA aussehen müssen. Er sagt mir klar, dass die geschweifte Klammer fehl am Platze ist. Du musst das Literal in Anführungszeichen schreiben und die innerhalb des Literals verwendeten Anführungszeichen über deren Zeichencode einbinden.

Mit den Anführungszeichen geht wohl auch auf die einfachere Art von Axel...

 ??? Hallo MadMetzger,

wie kann ich denn den Zeichencode der Anführungszeichen übergeben?

Bin für jede Antwort dankbar.

Gruß
Spalter



Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Axel am 27.11.07 - 11:38:55
Versuch's mal so:

...
searchFormula$ = "@Left(@Text(Feldx);2) = ""99"""
Set dc = Wdb.Search(searchFormula$, dateTime, 0)
....

Axel


 :( Hallo Axel,

das mit den Anführungszeichen funzt so leider nicht. Da habe ich einen Syntax-Fehler.


Ich hatte das bei mir getestet und bekam keinen Fehler. Wie sieht denn deine Formel aus?

Den Zeichencode für die Anführungszeichen übergibst du mit Chr$(34).

Axel
Titel: Re: Mit Search-Methode aus Excel importieren
Beitrag von: Spalter am 27.11.07 - 17:29:50
 ::)

Sorry Axel,

funzt bei mir natürlich auch. Hatte die doppelten Anführungszeichen nicht erkannt.

Gruß und schönen Abend
Spalter