Autor Thema: csv Datei importieren  (Gelesen 10998 mal)

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
csv Datei importieren
« am: 06.10.10 - 11:02:00 »
Hallo alle zusammen.....Ich habe ein paar csv Dateien. Jede Datei hat paar Zeilen( kundennummer, name usw.... )Ich habe eine Teilmaske erstellt mit den Felder die automatisch befüllt werden sollen. Eine Ansicht habe ich mir auch erstellt...Kundennummer, name usw...

Mein Agent den ich erstellt habe soll eine Datei öffnen den ersten Datensatz lesen dann die Kundennummer in der Ansicht suchen und falls die Kundennummer existier in der Ansicht das Dokument öffnen, die Felder befüllen und nächsten Datensatz lesen....was simples für euch aber für mich eine Herausforderung... bei set doc = doc.getfirstDocument bekomme ich schon eine Fehlermeldung, wahrscheinlich habe ich ncoh mehr....ich würde mcih echt freuen wenn ich paar Infos bekommen könnte

Sub Initialize
   
   Dim session As New  NotesSession
   Dim db As NotesDatabase   
   Dim dc As NotesDocumentCollection
   Dim view As NotesView
   Dim doc As NotesDocument   
   Dim item As NotesItem
   Dim filenum As Integer, iZaehler As Integer, pos As Integer     
   Dim filename As String
   Dim i As String
   Dim cTrenn As String, cText As String, cDate As String, cError As String, cAusgabe As String
   Dim cSelection As String
   Dim dtCutOff As New NotesDateTime("31.12.1900")
   Dim lDate As Long
   Dim cpathName As String
   Dim cFilename As String
   Dim Pathname As String
   Dim PathFileName As String
   Dim csvFilename As String
   Dim kundennummer As String
   Dim oNeuDoc As NotesDocument
   
   Set db=session.CurrentDatabase
   Set view = db.GetView ("vwKundeKur" )
   Set oHeute = New NotesDateTime(Now)                     ' *** Akt. Datum   
   
   pathName$ = "E:\TestKUR\Label\*"
   cFilename$ = Dir$(pathName$ & "*.csv", 0)
   
   iZaehler = 1
   cTrenn = ";"                                                              ' *** Definition des Trennzeichens
   
   Do While cFilename$ <> ""
      If  Isempty(cFilename$) Then
         Exit Sub
      End If    
      PathFileName = "E:\TestKUR\Label\" & cFilename$
      
      i = i + cTrenn
      iZaehler = iZaehler + 1      
      'lese erste zeile
      fileNum% = Freefile()
      Open PathFileName For Input As filenum  
      Seek filenum,1  
      Line Input #filenum, i
      
      Call ReadFields(i)                                    ' *** neuer Datensatz lesen         
      
      kundennummer = cImString(1)            'Kundennummer zwischenspeicher
      
      cSelection = "FORM = ""maKundenetikett"" & doc.fdCustNo = kundennummer"
      Set dc = db.Search ( cSelection , dtCutOff , 0 )   
      
      ' **** Wenn Kundennummer in der Ansicht = Kundennummer aus der csv Datei dann... ***********
      Set doc = doc.GetFirstDocument()
      If Not doc Is Nothing Then
         Call FillFields(doc,i)      
         On Error Goto ErrorPrint
         Call doc.save(False,True)      
      End If
      
      cFilename$ = Dir$()
   Loop
   
EndeGut:
   Close filenum
   Print cText
   Goto EndeAlles
ErrorPrint:  
   Resume Next
   Print cError
EndeFileOpen:
   Goto EndeAlles
EndeAlles:
   Exit Sub
End Sub

klaussal

  • Gast
Re: csv Datei importieren
« Antwort #1 am: 06.10.10 - 11:07:24 »
Zitat
set doc = doc.getfirstDocument bekomme ich schon eine Fehlermeldung

muss wohl heissen   .. = namedeinerview.getfirst...

Vielleicht solltest du hier mit getdocumentbykey arbeiten.
« Letzte Änderung: 06.10.10 - 11:11:46 von klauss »

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #2 am: 06.10.10 - 11:09:56 »
meinst du Set doc = vwKundeKur.getfirstdocument() ??

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #3 am: 06.10.10 - 11:11:52 »
a ja jetzt hab ichs moment mal debuggen wies jetzt aussieht

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #4 am: 06.10.10 - 13:49:16 »
also jetzt habe ich es mal so....ich mache es Schritt für Schritt wies sich auch für einen Anfänger gehört. Momentan liest der Agent alle Datensatz in der Datei stumpf durch. Laut debugger stimmt es auch so weit. Jetzt möchte ich in meine Ansicht die ich erstellt habe. Er soll den Kundennummer von der Datei nehmen schauen ob es die Kundennummer auch in der Ansicht gibt. Wenn ja dann fülle die Felder von der Datei in das Dokument.

Dim session As New  NotesSession
   Dim db As NotesDatabase   
   Dim dc As NotesDocumentCollection
   Dim view As NotesView
   Dim doc As NotesDocument   
   Dim item As NotesItem
   Dim filenum As Integer, iZaehler As Integer, pos As Integer     
   Dim filename As String
   Dim i As String
   Dim cTrenn As String, cText As String, cDate As String, cError As String, cAusgabe As String
   Dim cSelection As String
   Dim dtCutOff As New NotesDateTime("31.12.1900")
   Dim lDate As Long
   Dim cpathName As String
   Dim cFilename As String
   Dim Pathname As String
   Dim PathFileName As String
   Dim csvFilename As String
   Dim kundennummer As String
   Dim oNeuDoc As NotesDocument
   
   Set db=session.CurrentDatabase
   Set view = db.GetView ("vwKundeKur" )
   Set oHeute = New NotesDateTime(Now)                     ' *** Akt. Datum   
   
   pathName$ = "E:\TestKUR\Label\*"
   cFilename$ = Dir$(pathName$ & "*.csv", 0)
   
   iZaehler = 1
   cTrenn = ";"                                                              ' *** Definition des Trennzeichens
   
   If  Isempty(cFilename$) Then
   Exit Sub
   End If     
   PathFileName = "E:\TestKUR\Label\" & cFilename$
   
           
      'lese erste zeile
   fileNum% = Freefile()
   Open PathFileName For Input As filenum   
   Seek filenum,1   
   
   Do Until Eof (filenum)
      Line Input #filenum, i
      If i <> "" Then
         i = i + cTrenn
         iZaehler = iZaehler + 1
         Call ReadFields(i)                                    ' *** neuer Datensatz lesen
      End If
         
      
      ' **** Wenn Kundennummer in der Ansicht = Kundennummer aus der csv Datei dann... ***********
      
   Loop
   
EndeGut:
   Close filenum
   Print cText
   Goto EndeAlles
ErrorPrint:   
   Resume Next
   Print cError
EndeFileOpen:
   Goto EndeAlles
EndeAlles:
   Exit Sub
End Sub


Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #5 am: 06.10.10 - 13:50:41 »
unzwar habe ich möchte ich eine selektion machen. Also erstmal den kundennummer zwischenspeichern dann die selektion. Die Funktioniert aber nicht ....

kundennummer = cImString(1)            'Kundennummer zwischenspeicher
      
      cSelection = "FORM = ""maKundenetikett"" & doc.fdCustNo = kundennummer"
      Set dc = db.Search ( cSelection , dtCutOff , 0 )   

klaussal

  • Gast
Re: csv Datei importieren
« Antwort #6 am: 06.10.10 - 13:57:27 »
Siehe #1.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: csv Datei importieren
« Antwort #7 am: 06.10.10 - 13:58:57 »
Lass Dir mal cSelection ausgeben oder schau sie dir im Debugger an. Ich kann mit nicht vorstellen, dass es sich dabei um einen gültigen Suchausdruck handelt. ;)
Zumindest kann ich mir nicht vorstellen, dass Du ein Feld Namens "doc.fdCustNo" hast.  ;D
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #8 am: 06.10.10 - 14:14:11 »
so jetzt sieht die Selektion so aus

cSelection = "FORM = ""maKundenetikett"" & fdCustNo = kundennummer"
Set dc = db.Search ( cSelection , Nothing , 0 )   
      
      Set doc = dc.GetFirstDocument      
      Call FillFields(doc,i)

zumindest komme ich jetzt in die Funktion Fillfieds aber in der ersten Zeile haut es mich schon wieder weg mit der Meldung:  Object variable not set ....andere Funktionen von anderen Agent sehen genau so aus

Function FillFields (doc As NotesDocument , i As String)
   
   
   ' Zuweisung der Feldinhalte
   Dim heute As NotesDateTime
   Set heute = New NotesDateTime( "Today" )
   
   Dim menge As Long
   Dim datetime As NotesDateTime
   Dim datestring As String
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim vdoc As NotesDocument
   Dim key As String
   Dim User As String
   Dim oDate As String
   
   'Call doc.ReplaceItemValue("fdKdNr", cImString(1))                                    'Kundennummer
   Call doc.ReplaceItemValue("fdKdName", cImString(2))                              'Kundenname
   Call doc.ReplaceItemValue("fdAuftragsNr", cImString(3))                             'Auftragsnummer
   Call doc.ReplaceItemValue("fdAuftrPos", cImString(4))                              'Auftragsposition

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #9 am: 06.10.10 - 14:17:32 »
Warum in aller Welt benutzt Du niemals den Debugger?? Dort ist sofort zu sehen, warum das nicht funktioniert und nicht funktionieren kann!

Du haust uns hier dauernd neue Code-Schnipsel vor und erwartest, dass wir diese lesen und analysieren (und den Kopf schütteln, weil schlicht simple Logik fehlt), aber bist nicht bereit, erstmal den Debugger zu bemühen.

Bernhard

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #10 am: 06.10.10 - 14:27:16 »
LAUT DEBUGGER bin ich HIER WEG und ich weiss nicht warum

--> Call doc.ReplaceItemValue("fdKdName", cImString(2))                              'Kundenname

anscheinend waren hier welche nie Anfänger....

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #11 am: 06.10.10 - 14:32:40 »
Hier waren ALLE mal Anfänger. Aber auch ein Anfänger muss *denken*. Und Du solltest mal nachdenken, warum hier "Object variable not set" angemeckert wird!

Das einzige Object in Zeile ist "doc". Und dieser Spur folgst Du jetzt im Debugger - und wenn Du damit die eigentliche Fehlerstelle nicht findest, dann bist Du garantiert irgendwo anders begabt - aber nicht für die Programmierung.

Bernhard

klaussal

  • Gast
Re: csv Datei importieren
« Antwort #12 am: 06.10.10 - 14:52:46 »
Tipp: Option declare sollte immer gesetzt sein.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #13 am: 06.10.10 - 14:54:48 »
Klaus, das hat aber diesmal mit dem aktuellen Problem nichts zu tun.

Ich würde im aktuellen Kontext (und nicht nur in dem, sondern generell!) den Tipp geben: Verwende niemals ein Objekt, ohne es geprüft zu haben! NIEMALS!!

Bernhard

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #14 am: 06.10.10 - 14:57:01 »
wenn ich bloss wüsste was Ihr meint....

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #15 am: 06.10.10 - 14:59:59 »
@Klaus
Danke für dein tipp aber Option declar ist schon gesetzt

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #16 am: 06.10.10 - 15:03:03 »
wenn ich bloss wüsste was Ihr meint....

Meinst Du nicht, es ist an der Zeit, dass mit Deinem Arbeitgeber zu besprechen? Er kann Dich doch nicht für etwas einsetzen, wofür Du auch noch nicht ansatzweise fit bist. Die richtige Personalauswahl bzw. das Vorbereiten des Personals auf Aufgabenstellungen können und wollen wir Deinem Unternehmen nicht in unserer freien Zeit abnehmen.

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: csv Datei importieren
« Antwort #17 am: 06.10.10 - 15:07:50 »
OK, letzter Versuch, ev. liest Du ja diesen Text:

Du bist schon viel früher weg. Und zwar beim dbSearch. Oder bist Du der Meinung, dass
Code
FORM = "maKundenetikett" & fdCustNo = kundennummer
sowohl ein gültiger Suchausdruck für ein dbSearch ist, als auch das Ergebnis zurückliefert, das Du willst?

Meine Vermutung ist, dass dbSearch eine leere Collection zurückliefert. Und da Du auf diesen Fall offensichtlich nichts abprüfst, haut es Dich dann in dem Moment auf die Schnauze, in dem Du auf das erste (nicht vorgandene) Dokument der leeren Collection zugreifen willst.

Wenn Dir das jetzt noch immer nicht hilft, kann ich mich nur Bernhard anschließen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: csv Datei importieren
« Antwort #18 am: 06.10.10 - 15:19:51 »
Martin, dass ist natürlich die perfekt beschriebene Vorgeschichte des Dilemmas. Ich sehe den Zweck von AtNotes daran, genau diese Denke zu vermitteln, weil das nächste Posting schon absolut vorhersehbar ist, wenn wir hier nur die mehr oder weniger ganz fertigen Lösungen liefern.
Und im Code stecken ja noch viel mehr Tretminen ...

Wenn man mit den Hinweisen, die bis jetzt geliefert wurden (vor allem den prinzipiellen!!), immer noch nicht weiter kommt, dann sollte man sich einfach eine andere Aufgabe suchen.

Bernhard

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: csv Datei importieren
« Antwort #19 am: 06.10.10 - 15:56:03 »
so mein fehler war in der selection...... danke wegen den anderen fehler kümmer ich mich selber drum keine lust auf solche aussagen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz