Autor Thema: Re: Importieren von Ecxel Datensätzen in eine Maske  (Gelesen 4528 mal)

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Zitat
Sub Click(Source As Button)
'The action button is located on a view named Import1
     Dim ws As New NotesUIWorkspace
     Dim session As New NotesSession
     Dim db As NotesDatabase
     Set db = session.CurrentDatabase
     Dim view As NotesView
     Dim doc As NotesDocument
     Dim temp1 As String
     Dim temp2 As String
     Dim temp3 As String
     Dim temp4 As String
     Dim temp5 As String
     Dim temp6 As String
     Dim xlApp As Variant
     Dim xlSheet As Variant
     Dim cursor As Integer
     Dim recordcheck As String
     
     On Error Goto ERRORLABEL
     Dim FileName As String
     Dim DefaultFileName As String
     DefaultFileName="c:tempsheet.xls"
     
     NamePrompt$="Enter the complete Path and File Name of the Excel file to be imported:" &Chr(13)
     FileName=Inputbox(NamePrompt$,"Import File Name Specification",DefaultFileName,100,100)
     If FileName="" Then Goto SubEnd
     'Create an Excel object for the spreadsheet
     'It may be necessary to have the proper MS Office DLLs installed on the PC running this application
     'That is, the person must be able to open the XLS file with Excel
     Set xlApp = CreateObject("Excel.Application")
     xlApp.Application.Workbooks.Open Filename
'File not found will return ERR=213 and the routine will be ended
     With xlApp.workbooks.Add
     'Not sure what this line is for, unless it's to be sure that at least one workbook is present in the XLS file
     End With
'Stop
     Set xlSheet = xlApp.Workbooks(1).Worksheets(1)
     recordcheck="x"
     r=1 ' Row counter - first row contains fieldnames from the database;
'these fieldnames are not needed as long as the spreadsheet follows a specified format
     While recordcheck <>"0" And recordcheck <> "" And r<100
           'Recordcheck = "0" when there is no value in the first cell of the row,  if integer, or "", if string
           'Important - Set r to a value that will stop the import routine without missing any data, if the other criteria do not
'For this example, six columns are imported
           cursor=0
           r=r+1
           temp1=xlSheet.Cells(r,1).value
           recordcheck=Cstr(temp1)
           If recordcheck="0" Then Goto Finished ' Avoid generating empty record
           temp2=xlSheet.Cells(r,2).value
           temp3=xlSheet.Cells(r,3).value
           temp4=xlSheet.Cells(r,4).value
           temp5=xlSheet.Cells(r,5).value
           temp6=xlSheet.Cells(r,6).value
           'The above lines lines could be combined with those below, but keep separate for ease in debugging until ready to finalize the code
           Set doc = New NotesDocument(db)
           doc.Form = "frmName"
           doc.Field1 = temp1
           doc.Field2 = temp2
           doc.Field3= temp3
           doc.Field4 = temp4
           doc.field5 = temp5
           doc.field6 = temp6
           Call Doc.Save(True, False)
Finished:
     Wend
     Goto SubClose
     
ERRORLABEL:
     'Msgbox "An error was encountered."
     'Print "Error: " Error(), "   Err:" Err(), " Erl:" Erl()
     If Err=213 Then
           Messagebox Filename & " was not found. Verify Path and Filename, then try the Import again."
           Resume SubEnd
     Else
           Messagebox "Error" & Str(Err) & ": " & Error$
     End If
     Resume Next
SubClose:
     xlApp.activeworkbook.close
     xlApp.Quit
     Set xlapp = Nothing
     Set view=db.getview("import1")
     Call ws.viewrefresh
SubEnd:
End Sub


Kann ich damit auch in Notes 7.0.1 Datenbanken Masken mit Excel Felder füllen ?
Ich tu mir, was Script angeht, noch relativ schwer

gruß
Christoph
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #1 am: 27.07.06 - 16:18:22 »
Ich würde mal sagen ja. Ich wüsste nicht was dagegen sprechen sollte.

Aber eigentlich gehört das ins 7er Forum.



Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #2 am: 27.07.06 - 16:22:34 »
Ok, ist das dann für einen Agenten ?

Sorry, hab die Suchfunktion benützt und wollte keinen neuen Thread aufmachen  :)

Gruß
Christoph
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #3 am: 27.07.06 - 16:38:51 »
Ich halte das für kreuzgefährlich - auf Code zurückgreifen, von dem so gar keine Ahnung hat!

Vorab: Zwischen LS in R4 und R7 gibt es - gerade, was solche Importaktionen angeht - keine Unterschiede. Wenn, dann waren / wären dies Bugs. Diffiziler sind Änderungen in MS Office-Produkten, unter Umständen funktioniert etwas in Excel 2000, aber nicht in Excel 2003 oder Excel 97.

Weiterhin: Der Code ist SO nicht für einen Agent bestimmt, könnte dort aber laufen - dann könntest Du das aber gleich in einem Button lassen. Im Backend läuft der Agent SO allerdings nicht.

Frage: Was hast Du überhaupt vor? Wieviel Aufwand bist Du bereit, dabei vor allem in LS- und VBA-Lernen zu investieren?

Bernhard

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #4 am: 27.07.06 - 16:48:21 »
Ich will Dokumente mit Hilfe von Daten aus einer Excel Tabelle erstellen (so um die 140)
Ich würde es zuerst auf einer Replik der Datenbank testen damit die Orginal DB bei fehler nicht beschädigt wird


LS lernen wäre für mich bestimmt kein Fehler
ich würde aber fast Java bevorzugen

Gruß
Christoph
« Letzte Änderung: 27.07.06 - 16:51:24 von Klafu »
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #5 am: 27.07.06 - 17:09:29 »
Frontend oder Backend? Was ist die Ziel-DB? Passen die Datenstrukturen überein? Müssen ggf. Items nachberechnet werden? Und wo weiter ... viele offene Fragen.

Bernhard

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #6 am: 27.07.06 - 17:14:08 »
... das es sich um einen Ur-alten Thread handelt, würde ich vorschlagen nicht diesen hier zu benutzen, sondern einen eigenen, neuen aufzumachen

Toni
Grüßle Toni :)

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #7 am: 27.07.06 - 20:52:45 »
Man könnte ihn aber auch ab Antwort 5 teilen und den neueren Teil in 7er-Forum verschieben.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Glombi

  • Gast
Re: Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #8 am: 27.07.06 - 21:29:20 »
Man könnte ihn aber auch ab Antwort 5 teilen und den neueren Teil in 7er-Forum verschieben.

Axel

erledigt

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #9 am: 28.07.06 - 09:32:24 »
Frontend oder Backend? Was ist die Ziel-DB? Passen die Datenstrukturen überein? Müssen ggf. Items nachberechnet werden? Und wo weiter ... viele offene Fragen.

Bernhard

Ob Frontend oder Backend ist eigentlich egal.
Die Ziel DB ist unsere Hauseigene CRM Datenbank


Schlüsselwort und Beschreibung sollen über die Excel Tabelle jedesmal neu gefüllt werden.
Die felder Kategorie und Sprache sollen immer den gleichen Inhalt haben

Gruß
Christoph
« Letzte Änderung: 28.07.06 - 09:34:46 von Klafu »
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #10 am: 28.07.06 - 14:00:21 »
Hat mir wenigstens jemand eine kleine Hilfe, wie ich das problem lösen kann ?
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #11 am: 28.07.06 - 14:07:05 »
Da Du keine Ahnung von LS hast und nicht mal festlegen magst, ob Frontend oder Backend: Warum speicherst Du das Excel-File nicht als .WK4 und importierst mit den Frontend-Möglichkeiten des Clients in eine Ansicht? Dazu noch ein kleines schnuckeliges .COL-File schreiben (siehe DesignerHelp), und angesichts der wenig komplizierten Daten bist Du sehr schnell fertig mit der Sache.

Bernhard

klaussal

  • Gast
Re: Importieren von Ecxel Datensätzen in eine Maske
« Antwort #12 am: 31.07.06 - 16:01:38 »
BTW: ich benutz o.a. Code immer wieder gerne. Ein paar kleine Anpassungen bei den Feldnamen, und schon ist fertig  :D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz