chrislm
Goto Top

Access Spalte auslesen und Batch erstellen

Hallo.
ich möchte aus einer Spalte eine Batchdatei erstellen um schneller Bilder kopieren zu können.
ungefähr so hatte ich mir das gedacht:

Option Compare Database



Public Function bildercopy()
      Dim dbs As Database
   Dim rst As Recordset
   Dim merken1

      Set oFile = fso.OpenTextFile("C:\bilder.bat", 8, True)  
   Set dbs = CurrentDb
   Set rst = dbs.OpenRecordset("bilder abfrage", dbOpenDynaset)  
Set fso = CreateObject("Scripting.FileSystemObject")  

   With rst
        If .RecordCount > 0 Then

            
            .MoveLast
            .MoveFirst
            
            While Not .EOF

               
               merken1 = !Bilder

               
                   oFile.WriteLine "xcopy y:*" & merken1 & "* /s"  
                  
               .MoveNext
            Wend
        
        End If
        
   End With
   rst.Close
   
End Function

Leider bekomme ich einen Fehler: Objekt erforderlich (Fehler 424)

Content-ID: 213741

Url: https://administrator.de/contentid/213741

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

bastla
bastla 08.08.2013 aktualisiert um 14:35:26 Uhr
Goto Top
Hallo chrislm!

Ob der Fehler sich wohl auf die Zeile 10 bezieht? Ich würde auf jeden Fall die Zeile 13 vor der Zeile 10 platzieren ...

BTW: Wenn Du schon Variablen per "Dim" deklarierst, dann aber gleich richtig und konsequent mit einem "Option Explicit" in Zeile 2 und Deklaration aller Variablen (also auch "fso" und "oFile").

Grüße
bastla
chrislm
chrislm 08.08.2013 aktualisiert um 14:46:12 Uhr
Goto Top
hallo und danke für die schnelle Antwort.
Also ich habe die Zeilen getauscht und bekomme nun einen Laufzeitfehler 3061
Wenn ich die Option Explicit in Zeile 2 setze, dann meckert er: Variable nicht definiert
und markiert mir diese Zeile:
Set fso = CreateObject("Scripting.FileSystemObject")
bastla
bastla 08.08.2013 um 14:51:22 Uhr
Goto Top
Hallo chrislm!
dann meckert er: Variable nicht definiert
Genau das ist auch der Sinn der Aktion - Du sollst vorweg alle Variablen deklarieren (hatte ich das erwähnt? face-wink) , daher eben auch noch
Dim fso As Object
Dim oFile As Object
Wenn Du dann noch diese Fehlermeldung erhältst, kann es sich nur um eine Variable handeln, die falsch geschrieben ist - so findest Du solche Tippfehler leichter ...

Grüße
bastla
chrislm
chrislm 08.08.2013 um 15:01:46 Uhr
Goto Top
das wäre schon mal soweit OK. Aber einen Laufzeitfehler 3061 habe ich leider immer noch, nun hier:
Set rst = dbs.OpenRecordset("bilder abfrage", dbOpenDynaset)
bastla
bastla 08.08.2013 aktualisiert um 15:07:39 Uhr
Goto Top
Hallo chrislm!

Dazu kann ich leider nix sagen ... face-sad

Grüße
bastla
chrislm
chrislm 08.08.2013 um 15:39:56 Uhr
Goto Top
Bin wieder etwas weiter. Der Fehler lag in der Abfrage, dort hatte ich im Datum noch eine Eingrenzung in Datum versehen und das wollte er wohl in dieser Form so nicht. Nun habe ich aber in der Zeile ein Laufzeitfehler 13 Typen unverträglich.
chrislm
chrislm 08.08.2013 um 15:48:50 Uhr
Goto Top
Ich habs...

Dim rst As DAO.Recordset
da lag das Problem
es muss noch als DAO deklariert werden...

Dennoch vielen Dank.