Discussion:
Batch-Datei erstellen
(zu alt für eine Antwort)
Michael Marschall
2008-06-10 11:48:25 UTC
Permalink
Hallo,
ich würde gerne aus Access eine Batch-Datei erstellen.
Der Export sollte durch eine Abfrage erfolgen. Um mir eine
Exportspezifikation speichern zu können, wollte ich den Export einmal
manuell durchspielen.
Die Daten sollten einfach ohne Kopfzeile mit Leerzeichen als Trenner
ausgespielt werden.
Das mit den Trennzeichen ist kein Problem.
Mein Problem besteht darin das Access mir folgende Fehlermeldung
auswirft:
"Aktualisieren nicht möglich; Datenbank oder Objekt sind
schreibgeschützt"

Wie kann ich Access dazu bewegen mir eine Ordentliche Batch-Datei zu
erstellen.

Danke im voraus
Jörg Ackermann
2008-06-10 12:24:26 UTC
Permalink
Hallo,
Post by Michael Marschall
ich würde gerne aus Access eine Batch-Datei erstellen.
Der Export sollte durch eine Abfrage erfolgen. Um mir eine
Exportspezifikation speichern zu können, wollte ich den Export einmal
manuell durchspielen.
Die Daten sollten einfach ohne Kopfzeile mit Leerzeichen als Trenner
ausgespielt werden.
Das mit den Trennzeichen ist kein Problem.
Mein Problem besteht darin das Access mir folgende Fehlermeldung
"Aktualisieren nicht möglich; Datenbank oder Objekt sind
schreibgeschützt"
Wie kann ich Access dazu bewegen mir eine Ordentliche Batch-Datei zu
erstellen.
http://www.donkarl.com/?FAQ7.16

Gruß
Henry Habermacher
2008-06-10 12:41:53 UTC
Permalink
Hallo Michael

"Michael Marschall" <***@googlemail.com> wrote in message news:ddaaa85c-d7ab-46f5-97a0-***@k13g2000hse.googlegroups.com...
ich würde gerne aus Access eine Batch-Datei erstellen.
Der Export sollte durch eine Abfrage erfolgen. Um mir eine
Exportspezifikation speichern zu können, wollte ich den Export einmal
manuell durchspielen.
Die Daten sollten einfach ohne Kopfzeile mit Leerzeichen als Trenner
ausgespielt werden.
Das mit den Trennzeichen ist kein Problem.
Mein Problem besteht darin das Access mir folgende Fehlermeldung
auswirft:
"Aktualisieren nicht möglich; Datenbank oder Objekt sind
schreibgeschützt"

Wie kann ich Access dazu bewegen mir eine Ordentliche Batch-Datei zu
erstellen.


--> Zuerst einmal: Was soll die Batch Datei denn machen? Wenn es nur darum
geht, z.B. Dateien rumzukopieren oder dergleichen, dann kannst Du das auch
in VBA direkt machen.

Ansonsten würde ich Dir empfehlen, eine Batchdatei nicht mittels Export zu
erstellen, sondern mit Open und Print. Diese Funktionen sind in der VBA OH
erläutert. Alternative wäre auch der Windows Script eine Möglichkeit
(Beschreibung der Möglichkeiten findest Du bei msdn.microsoft.com), welche
mehr an die Semantik von VBA anknüpft, als die uralt-BASIC Befehle oben.

Wieso es mit TransferText vermutlich bei Dir nicht geht, wurde ja im anderen
Posting bereits mitgeteilt.

Gruss
Henry
--
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com
Michael Marschall
2008-06-10 13:51:25 UTC
Permalink
Post by Henry Habermacher
Hallo Michael
ich würde gerne aus Access eine Batch-Datei erstellen.
Der Export sollte durch eine Abfrage erfolgen. Um mir eine
Exportspezifikation speichern zu können, wollte ich den Export einmal
manuell durchspielen.
Die Daten sollten einfach ohne Kopfzeile mit Leerzeichen als Trenner
ausgespielt werden.
Das mit den Trennzeichen ist kein Problem.
Mein Problem besteht darin das Access mir folgende Fehlermeldung
"Aktualisieren nicht möglich; Datenbank oder Objekt sind
schreibgeschützt"
Wie kann ich Access dazu bewegen mir eine Ordentliche Batch-Datei zu
erstellen.
--> Zuerst einmal: Was soll die Batch Datei denn machen? Wenn es nur darum
geht, z.B. Dateien rumzukopieren oder dergleichen, dann kannst Du das auch
in VBA direkt machen.
Ansonsten würde ich Dir empfehlen, eine Batchdatei nicht mittels Export zu
erstellen, sondern mit Open und Print. Diese Funktionen sind in der VBA OH
erläutert. Alternative wäre auch der Windows Script eine Möglichkeit
(Beschreibung der Möglichkeiten findest Du bei msdn.microsoft.com), welche
mehr an die Semantik von VBA anknüpft, als die uralt-BASIC Befehle oben.
Wieso es mit TransferText vermutlich bei Dir nicht geht, wurde ja im anderen
Posting bereits mitgeteilt.
Gruss
Henry
--
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQwww.donkarl.com
Hallo,
also mit der BatchDatei möchte ich eigentlich nur ein Datei erstellen
die Datensätze herumkopiert.
Die Abfrage spuckt z.Zt. halt folgende Zeile aus.
copy "Startverzeichnis" "Zielverzeichnis"
mehr nicht.
Die Datensätze sind allerdings variabel, sprich die verändern sich
täglich.

Wie kann ich das denn noch lösen ?

Danke im voraus
Henry Habermacher
2008-06-10 14:44:52 UTC
Permalink
Hallo Michael

"Michael Marschall" <***@googlemail.com> wrote in message news:4e2eafb9-8669-46fa-af4e-***@m3g2000hsc.googlegroups.com...
On 10 Jun., 14:41, "Henry Habermacher" <***@psp-online.com>
wrote:

also mit der BatchDatei möchte ich eigentlich nur ein Datei erstellen
die Datensätze herumkopiert.
Die Abfrage spuckt z.Zt. halt folgende Zeile aus.
copy "Startverzeichnis" "Zielverzeichnis"
mehr nicht.
Die Datensätze sind allerdings variabel, sprich die verändern sich
täglich.

Wie kann ich das denn noch lösen ?

Wie wär's denn z.B. damit:

FileCopy DLookup("Startverzeichnis", "DeineAbfrage") & " " &
DLookup("Zielverzeichnis", "DeineAbfrage")

Details zu FileCopy findest Du in der OH. Eine Batch zum rumkopieren von
Dateien ist wirklich nicht notwendig, das kann VBA genau so gut.

Gruss
Henry
--
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com
Michael Marschall
2008-06-11 07:40:27 UTC
Permalink
Post by Henry Habermacher
Hallo Michael
also mit der BatchDatei möchte ich eigentlich nur ein Datei erstellen
die Datensätze herumkopiert.
Die Abfrage spuckt z.Zt. halt folgende Zeile aus.
copy "Startverzeichnis" "Zielverzeichnis"
mehr nicht.
Die Datensätze sind allerdings variabel, sprich die verändern sich
täglich.
Wie kann ich das denn noch lösen ?
FileCopy DLookup("Startverzeichnis", "DeineAbfrage") & " " &
DLookup("Zielverzeichnis", "DeineAbfrage")
Details zu FileCopy findest Du in der OH. Eine Batch zum rumkopieren von
Dateien ist wirklich nicht notwendig, das kann VBA genau so gut.
Gruss
Henry
--
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQwww.donkarl.com
Hallo,
ich galube ich steh gerade auf der Leitung, ich wollte es jetzt per
VBA probieren, und habe deinen Tip in einen Button eingebaut.
Die Zeile sieht jetzt folgendermaßen aus

FileCopy DLookup("Bild", "A_Uebergabe_PDF_kopieren") & " " &
DLookup("Zielverzeichnis", "A_Uebergabe_PDF_kopieren")

Access zeigt mir jetzt aber einen Fehler beim kompilieren an.
(Argument ist nicht optional)

Wo hängt der Fehler ?

Danke
Mark Doerbandt
2008-06-11 07:46:53 UTC
Permalink
Hallo, Michael,
Post by Michael Marschall
Post by Henry Habermacher
FileCopy DLookup("Startverzeichnis", "DeineAbfrage") & " " &
DLookup("Zielverzeichnis", "DeineAbfrage")
FileCopy DLookup("Bild", "A_Uebergabe_PDF_kopieren") & " " &
DLookup("Zielverzeichnis", "A_Uebergabe_PDF_kopieren")
der Code ist flasch - FileCopy braucht zwei Parameter: Quelle und
Senke. Allerdings sollte da ohne eine Bedingung (dritter Parameter)
beim DLookup noch ein Problem sein, da dann nur einfach irgendeine der
Dateien kopiert wird (ich nehme an, es sind mehrere?)...

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Michael Marschall
2008-06-11 08:40:38 UTC
Permalink
Post by Mark Doerbandt
Hallo, Michael,
Post by Michael Marschall
Post by Henry Habermacher
FileCopy DLookup("Startverzeichnis", "DeineAbfrage") & " " &
DLookup("Zielverzeichnis", "DeineAbfrage")
FileCopy DLookup("Bild", "A_Uebergabe_PDF_kopieren") & " " &
DLookup("Zielverzeichnis", "A_Uebergabe_PDF_kopieren")
der Code ist flasch - FileCopy braucht zwei Parameter: Quelle und
Senke. Allerdings sollte da ohne eine Bedingung (dritter Parameter)
beim DLookup noch ein Problem sein, da dann nur einfach irgendeine der
Dateien kopiert wird (ich nehme an, es sind mehrere?)...
Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unterhttp://www.doerbandt.de/Access/Newbie.htm
Bitte keine eMails auf Newsgroup-Beiträge senden.
Hallo,
also das Grundproblem habe dabei, das ich zwar ein Abfrageergebnis
bekomme, dieses aber für eine Kopieraktion brauche.
Ursprunglich hatte ich vor eine Batch-Datei erstellen zu lassen, aber
die FileCopy Funktion hört sich ganz gut an.

Wie kann ich denn Access dazu bringen mir die kompletten Dateien aus
der Abfrage zu kopieren ?

Danke
Thomas Winkler
2008-06-11 10:33:08 UTC
Permalink
Hi,

willst Du nur einen Wert aus den vielen Datensätzen die Deine Abfrage
liefert kopieren, dann bist Du mit DLookup() dabei. Dann allerdings mit
3! Parametern siehe OH.

FileCopy DLookup("Startverzeichnis", "DeineAbfrage", "DeinPK=Wert),
DLookup("Zielverzeichnis", "DeineAbfrage", "DeinPK=Wert")
Post by Michael Marschall
Wie kann ich denn Access dazu bringen mir die kompletten Dateien aus
der Abfrage zu kopieren ?
Willst Du *alle* Dateien kopieren, die Deine Abfrage liefert, musst Du
natürlich alle Datensätze durchiterieren. z.B. mit einem Recordset...

dim rs as dao.recordset

set rs = currentdb.openrecordset("SQL-Text-oder-Abfragename")

while not rs.eof
Filecopy rs!Startverzeichnis, rs!Zielverzeichnis
wend

rs.close
set rs = nothing

Thomas

--
"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."
Michael Marschall
2008-06-11 13:07:50 UTC
Permalink
Post by Thomas Winkler
Hi,
willst Du nur einen Wert aus den vielen Datensätzen die Deine Abfrage
liefert kopieren, dann bist Du mit DLookup() dabei. Dann allerdings mit
3! Parametern siehe OH.
FileCopy DLookup("Startverzeichnis", "DeineAbfrage", "DeinPK=Wert),
DLookup("Zielverzeichnis", "DeineAbfrage", "DeinPK=Wert")
Post by Michael Marschall
Wie kann ich denn Access dazu bringen mir die kompletten Dateien aus
der Abfrage zu kopieren ?
Willst Du *alle* Dateien kopieren, die Deine Abfrage liefert, musst Du
natürlich alle Datensätze durchiterieren. z.B. mit einem Recordset...
dim rs as dao.recordset
set rs = currentdb.openrecordset("SQL-Text-oder-Abfragename")
while not rs.eof
   Filecopy rs!Startverzeichnis, rs!Zielverzeichnis
wend
rs.close
set rs = nothing
Thomas
--
"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."
Hallo,
das funktioniert echt gut, allerdings kopiert die Anweisung nur den
ersten Datensatz und macht dann eine Endlosschleife die immer nur den
ersten Datensatz kopiert.

Wie kann ich dieser While Wend schleife beibrigen, das diese jeden
Datensatz durchgeht.

Danke im voraus
Peter Doering
2008-06-11 13:21:59 UTC
Permalink
Hallo,
Post by Michael Marschall
Post by Thomas Winkler
dim rs as dao.recordset
set rs = currentdb.openrecordset("SQL-Text-oder-Abfragename")
while not rs.eof
   Filecopy rs!Startverzeichnis, rs!Zielverzeichnis
wend
rs.close
set rs = nothing
das funktioniert echt gut, allerdings kopiert die Anweisung nur den
ersten Datensatz und macht dann eine Endlosschleife die immer nur den
ersten Datensatz kopiert.
Wie kann ich dieser While Wend schleife beibrigen, das diese jeden
Datensatz durchgeht.
Da fehlt ein .MoveNext, kommt bei Luftcode schon mal vor ;-)

Do While Not rs.EOF
   Filecopy rs!Startverzeichnis, rs!Zielverzeichnis
rs.MoveNext
Loop

Rest wie gehabt.

Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Josef Poetzl
2008-06-11 07:48:48 UTC
Permalink
Hallo!
Post by Michael Marschall
Post by Henry Habermacher
FileCopy DLookup("Startverzeichnis", "DeineAbfrage") & " " &
DLookup("Zielverzeichnis", "DeineAbfrage")
Details zu FileCopy findest Du in der OH.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[...]
Post by Michael Marschall
Access zeigt mir jetzt aber einen Fehler beim kompilieren an.
(Argument ist nicht optional)
Wo hängt der Fehler ?
Auszug aus der OH:
| Syntax:
| FileCopy source, destination


mfg
Josef
--
EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/
Lesen Sie weiter auf narkive:
Loading...