Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Migration Dokumentenverwaltung von 2003 in 2007

Begonnen von fantacola, Januar 16, 2012, 11:33:59

⏪ vorheriges - nächstes ⏩

fantacola

Hallo zusammen
Wollte folgendes machen:

Einbau der Dokumentenveraltung für AC2003 von www.access-home.de in meine DB..alles mit rudimentären VBA-Kenntnissen.

Erst kam immer ein Fehler, wenn  ich ein Dokument anfügen wollte:

Me.UForm.Requery     

Habe das so zu Me!UForm.requery geändert, dann gings, aber eben mit folgender Fehlermeldung:
           
Laufzeitfehler 13 bei folgender Zeile.

  Set rs = db.OpenRecordset("tblLiefDoc", dbOpenDynaset)

Für mich zu kryptisch. Wer weiss Rat?

Hier noch der ganze Click:

Private Sub Befehl15_Click()


Dim db As Database
Dim rs As Recordset
Dim DocPfad As String
Dim a As Variant

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("tblLiefDoc", dbOpenDynaset)
   
        a = DateiOeffnen("C:\", "Bitte Dokument auswählen:", "ALLE")
        If IsNull(a) Or a = "" Then
        Else
            DocPfad = a
            rs.AddNew
                rs!DocPfad = DocPfad
                rs!Lieferant_FK = Me.Lieferant_FK
            rs.Update
        End If
        Me!UForm.Requery       >>>>> hier stand ursprünglich Me.Uform.request. Habe das so geändert, dann gings, aber eben mit der Fehlermeldung 13 ejtzt.
       
    rs.Close
    db.Close
   

End Sub

Danke sehr

fantacola

Ich antworte mir selber :-)

Habe Dim rs As Recordset
zu
Dim rs As DAO.Recordset
geändert und konnte dann eine Datei auswählen.

Danach kam wieder das Me.UForm.requery auf...Laufzeitfehler 2465

Habe das Unterformular bei den Eigenschaften auch als UForm benannt...

Beaker s.a.

Hallo fantacola,
Was ist UForm?
Das Ufosteuerelement oder das Formular da drin.
Wahrscheinlich ersteres, dann versuche:
Me!UForm.Form.Requery
Bei letzterem:
Me!NameDesUfoControls.Form.Requery
hth
Noch eine Kleinigkeit zum Code

>> gelöscht (hat er schon selber gemerkt)

   rs.Close
   db.Close

Besser:
   rs.Close
   set rs = Nothing
   set db = Nothing

"db" brauchst/kannst Du nicht schliessen, da Du sie nicht geöffnet hast.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

fantacola

Hallo ekkehard
danke sehr. genau ersteres war es, es klappt nun

zwei fragen hätte ich noch. nun kann ich eine datei auswählen und den pfad legt es dann ab. ich möchte jedoch nicht den ganzen pfad sehen, sondern zb nur den dateinamen. der ganze pfad ist schlicht zu lang, was nicht gut aussieht. wie mach ich das?
die zweite frage ist, dass ich zu jeder datei eine beschreibung anfügen will. eine feld habe ich erzeugt, welches ich aber erst nachträglich einfüllen kann. wie kann ich zb nach der dateiauswahl noch eine eingabeaufforderung für diese beschreibung erzeigen?

lg
daniel

Beaker s.a.

Hallo Daniel,
Zitatdanke sehr. genau ersteres war es, es klappt nun
Schön.
Zitatnun kann ich eine datei auswählen und den pfad legt es dann ab. ich möchte jedoch nicht den ganzen pfad sehen, sondern zb nur den dateinamen. der ganze pfad ist schlicht zu lang, was nicht gut aussieht. wie mach ich das?
Sehen und/oder speichern?
Wenn Du nur den Dateinamen speichern willst, macht Dein Vorgehen IMO keinen Sinn; - was willst Du mit einem reinen Dateinamen, wenn Du nicht weisst wo die ist. Zum Sehen könntest Du das Textcontrol vielleicht einfach nur rechtsbündig formatieren. Ansonsten kannst Du den Dateinamen mit
DateiName = Left(DocPfad,InStrRev(DocPfad,"\")) ermitteln.
Zitatdass ich zu jeder datei eine beschreibung anfügen will. eine feld habe ich erzeugt, welches ich aber erst nachträglich einfüllen kann. wie kann ich zb nach der dateiauswahl noch eine eingabeaufforderung für diese beschreibung erzeigen?
Eingabeaufforderung? Inputbox? Würde ich nicht machen. Besser das Feld auf Tabellenebene mit Eingabe erforderlich und Leere Zeichenfolge = Nein einrichten, und im Formular nach Auswahl einer Datei den Focus in das Feld setzen.
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

fantacola

danke für die ausführlichen antworten...
habe in der tabelle die bemerkung zu eingabe erfordeling geändert..wegen der reihenfolge motzt acc jetzt..
ich solle bevor ich die datei auswähle das bemerkungsfeld füllen...na halb so wild, wenn das nicht geht.
es funktioniert ganz gut so wie bisher

Beaker s.a.

Hallo fantacola,
Zitatwegen der reihenfolge motzt acc jetzt..
Welche Reichenfolge?
Zitatich solle bevor ich die datei auswähle das bemerkungsfeld füllen...
Jo, ist klar. Wenn da DS sind in denen keine Bemerkung eingetragen ist, motzt die JET-Engine.
Da musst Du vorher eine Aktualisierungsabfrage drüber schicken.
UPDATE tblLiefDoc SET DeinFeld = 'Eintrag muss noch erfolgen!'
Anschliessend änderst Du die Feldeigenschaften, und solltest dann auch keine Fehlermeldung mehr erhalten.
Im Formular musst Du dann natürlich den Fehler behandeln, wenn der Anwender nichts eingibt.
hth
gruss ekkhard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)