hallo scripter
ich hab in einer datenbank ein script um excelzeilen ind ie zwischenablage zu bringen und dann in die db zu schreiben, nur funzt das leider nicht, aber mein cheffe bildet sich das ein (ich hab ja gemeint die leute sollen gleich eine ganze tabelle importieren)
die excel tabelle schaut so aus
datum, Kostenstelle, Aufgabe, inst/org/Projekt, Dauer, Beschreibung,#(als trennzeichen)
die zellen werden markiert, und dann in ein rtf feld als text übernommen
die dokumente will dann ich so erstellen:
Sub Click(Source As Button)
Dim ws As New notesuiworkspace
Dim UIDoc As notesuidocument
Set UIDoc=ws.currentdocument
Dim AktuellerDS As String
Dim AktZeile As Integer
Dim AnzFehler As Integer
Dim AnzFalscherDS As Integer
REM Dim filenum As Integer
REM filenum=Freefile
Call UIDoc.FieldSetText("EinfügeDokumentFehler", "")
Feld1=UIDoc.FieldGetText("RTF")
'Bestimmung der Anzahl der Zeilen durch:
'Bestimmung der Anzahl der #
AnzZeilen=0
For i = 1 To Len(Feld1)
If Mid$(Feld1, i, 1) = "#" Then AnzZeilen=AnzZeilen+1
Next
REM Print "Anzahl der Zeilen = " & AnzZeilen
'Wenn gar keine "#" vorkommen, dann wurde keine richtige Tabelle eingefügt!
If AnzZeilen=0 Then
Msgbox "Der eingefügte Text entspricht nicht der Schnittstellenkonvention"
Exit Sub
End If
'Anmerkung: das "#" ist das Ende einer Zeile
'Die x Zeilen (entspricht der Anzahl der Datensätze) können nun als Dokumente eingefügt werden
AktZeile=0
AktPos=1
AnzFehler=0
AnzFalscherDS = 0
For j=1 To AnzZeilen
AktZeile = AktZeile + 1
REM Open "d:\WoBDB\RTF.txt" For Output As #filenum
'Position des Endes der aktuellen Zeile ermitteln
'Das Ende muß gleich beim nächsten "#" sein
BeginnPosZeile=AktPos
EndPosZeile=Instr(AktPos, Feld1, "#")+1 'Suchen des nächsten "#" als Zeilenende
LaengeZeile=EndPosZeile-BeginnPosZeile - 2 'minus 2 deshalb, weil der letzte Tab und das "#" nicht mitgerechnet werden darf
AktuellerDS=Mid$(Feld1, BeginnPosZeile, LaengeZeile)
AktPos=EndPosZeile
REM Write #Filenum,AktuellerDS
REM Close #Filenum
'Überprüfen, ob der DS den Konventionen entspricht (keine neuen KSt, Aufgabe, Inst/Org/Proj
If Datensatz_OK (AktuellerDS, AktZeile, AnzFehler)=False Then
AnzFalscherDS = AnzFalscherDS + 1
'AnzFehler = AnzFehler + 1
'Print "Aus Script 'Schaltfläche Docs erstellen' ausgestiegen"
End If
Next
If AnzFehler > 0 Then
Antwort = Msgbox("Es wurden " & AnzFehler & " Fehler im Text gefunden." & Chr(10) & _
"Bitte korrigieren Sie diese und klicken Sie anschließend erneut auf '2 Docs erstellen'." & Chr(10) & Chr(10) & _
"Wollen Sie die Seite drucken?", MB_ICONEXCLAMATION + MB_YESNO, "Seite Drucken?")
If Antwort = IDYES Then
Call UIDoc.print(1) '1 Kopie des ganzen Dokuments
End If
Exit Sub
End If
Messagebox "Alles akzeptiert!" & Chr(10) & "Jetzt werden die Dokumente erstellt", 64
AktZeile=0
AktPos=1
Print " *** Daten einfügen beginnt *** "
For j=1 To AnzZeilen
AktZeile = AktZeile + 1
'Position des Endes der aktuellen Zeile ermitteln
'Das Ende muß gleich beim nächsten "#" sein
BeginnPosZeile=AktPos
EndPosZeile=Instr(AktPos, Feld1, "#")+1 'Suchen des nächsten "#" als Zeilenende
LaengeZeile=EndPosZeile-BeginnPosZeile - 2 'minus 2 deshalb, weil der letzte Tab und das "#" nicht mitgerechnet werden darf
AktuellerDS=Mid$(Feld1, BeginnPosZeile, LaengeZeile)
AktPos=EndPosZeile
Call Datensatz_einfuegen (AktuellerDS, AktZeile)
Next j
Call UIDoc.FieldSetText("AnzEingefDoks", Cstr(AnzZeilen))
Messagebox "Daten einfügen abgeschlossen"
Print " *** Daten einfügen abgeschlossen *** "
Call UIDoc.save
Call UIDoc.close
End Sub
nur mag mich das ding net, will heissen es geht net. es meint dass die daten nicht stimmen, oder dass das dokument gelöscht wurde oder sonstige spompanadln. ich bin leider ein script-nackabatzl und würde eure hilfe brauchen, wenn wer grad zeit hat.
danke
lg
roo