PDA

Vollständige Version anzeigen : transfertext mit statischen textzeilen


karlo16
26.09.2003, 14:03
hallo,
es wäre super wenn mir jemand helfen könnte - ich kriege das alleine nicht hin. ich habe vor einiger zeit (mit hilfe) ein makro erstellt, welches per 'transfertext' daten aus einer bestimmten access abfrage in ein textfile schreibt. nun soll dieses textfile nicht nur die daten aus der abfrage enthalten, sondern auch ein paar statische anfangs- und endzeilen. natürlich würden die im moment jedesmal bei ausführung des makros mit dem inhalt der abfrage überschrieben werden. wie kriege ich das hin, dass sie bei ausführung des makros nicht überschrieben werden?
vielen dank für eure hilfe.
gruss,
karlo

Nouba
26.09.2003, 14:09
Hallo Karlo,

zeige uns bitte die Abfrage (Text der SQL-Ansicht im Abfrageentwurdfseditor), sowie Deinen statischen Text, den Du einfügen willst. Beschreibe auch bitte, wo der Text hin soll (Anfang oder Ende). Man kann vermutlich aus der bisherigen Abfrage den statischen Text in einer Vereinigungsabfrage kombinieren und kann das Makro weiterverwenden

karlo16
26.09.2003, 15:03
Also die Abfrage lautet folgendermaßen:

SELECT[adresse]& " " &[kennung]& "@server.de" AS [Mail] FROM db_alles INNER JOIN db_auswahl ON db_alles.id = db_auswahl.id_auswahl

an den anfang des textfiles soll diese zeile:

#DELEGATION.SERVER.DE

und ans ende soll

###
@delegation.server.de________error:nouser
#DELEGATION.SERVER.DE-ENDE

grüsse,
karlo

Nouba
26.09.2003, 15:18
Hallo Karlo,

Du kannst vermutlich folgende Vereinigungsabfrage als Grundlage nehmen. Darüber erstellst Du dann eine neue Abfrage, in der das künstliche Feld "SortKey" nur zum Sortieren verwendet aber nicht angezeigt wird.
SELECT
1 AS [SortKey],
[adresse] & " " & [kennung] & "@server.de" AS [Mail]
FROM db_alles
INNER JOIN db_auswahl ON
db_alles.id = db_auswahl.id_auswahl
UNION
SELECT
0
, "#DELEGATION.SERVER.DE"
FROM db_alles
UNION
SELECT
2
, "###" & Chr(13) Chr(10)
& "@delegation.server.de________error:nouser" & Chr(13) & Chr(10)
& "#DELEGATION.SERVER.DE-ENDE"
FROM db_alles

karlo16
26.09.2003, 15:34
Hallo Nouba,
danke für den Lösungsvorschlag. puuhh, sieht ja wild aus für einen anfänger wie mich. bedeutet das denn, dass ich einer tabelle ein neues feld, nämlich Sortkey hinzufügen muss? ich frage deshalb, weil ich nicht "herr" der datenbank bin und die tabellen nicht modifizieren kann. oder habe ich das jetzt falsch verstanden? ach so und öhm was bedeutet [Code]?
grüsse,
karlo

Nouba
26.09.2003, 15:40
Die Tabellen bleiben unbetroffen. In der Vereinigungsabfrage wird für die Kopfzeile eine 0 als SortKey angegeben, für den hauptteil eine 1 und für das Ende eine 2. Damit kannst Du die Datensätze vorsortieren..Am Besten prüfst Du die Abfrage einfach einmal, erstellst eine neue Abfrage über die vorherige zum Sortieren und läßt uns dann wissen, ob es geklappt hat.

[CODE] dient zur Darstellung von Programmtext - wie Du siehst, wird dabei ein Monospace Font (Courier New) verwendet. Damit ist Programmtext besser vom übrigen Text zu unterscheidbar. und jedes Leerzeichen wird auch als solches dargestellt Über dem Entwurfsfenster eines Beitrags ist die Schaltfläche oben links zu finden.

karlo16
26.09.2003, 17:22
hallo Nouba,
also es funktioniert im prinzip schon recht prima. :)
probleme gibt es bei & Chr(13) Chr(10) - da mahnt er fehlende "" an, wenn ich mich recht entsinne (ich muss ständig zwischen zwei gebäuden hin und her laufen und an zwei verschiedenen rechnern arbeiten).

Habe also nun zwei abfragen, eine mit deinem code und die zweite:

SELECT test_a[Mail]
FROM test_a
ORDER BY test_a.SortKey

nun würde ich allerdings der zweiten noch gerne ein paar felder aus den beiden tabellen db_alles und db_auswahl hinzufügen, um die ausgabe nicht nur nach SortKey sondern auch nach nachnamen zu sortieren. habe es versucht und folgende meldung bekommen:

"Die sql-anweisung konnte nicht ausgeführt werden, da sie mehrdeutige Inklusionsverknüpfungen enthält. damit eine der verkn. zuerst ausgeführt wird, müssen sie eine separate abfrage erstellen, die die erste verkn. ausführt und dann die abfrage in die sql-anweisung einschließen."

nun ja, habe mal ein bißchen rumprobiert, ist aber noch ziemlich böhmisch für mich. :bawling:
grüsse,
karlo

Nouba
26.09.2003, 18:13
bei den Zeichen-Funktionen für den Zeilenumbruch ist ein & (Verkettungszeichen) verloren gegangen. Richtig müße es jeweils
& Chr(13) & Chr(10)
heißen. Deutsches Access wird Dir daraus die Funktion Zchn machen - in der SQL-Ansicht sieht es aber wieder wie zuvor aus. Also nicht wundern.

Der Rest ist noch etwas abstrakt. Wenn Du weitere Felder in die Hauptabfrage einfügst (dürfte ja kein Problem sein), muß in der Vereinigungsabfrage für jedes Feld ein Dummy Wert eingetragen werden. Dafür kann einfach der Wert Null genommen werden.

karlo16
26.09.2003, 20:47
Original geschrieben von Nouba
bei den Zeichen-Funktionen für den Zeilenumbruch ist ein & (Verkettungszeichen) verloren gegangen.
Ach so.

Der Rest ist noch etwas abstrakt. Wenn Du weitere Felder in die Hauptabfrage einfügst
Mit hauptabfrage meinst du die in meinem fall die 'test_b' (wenn 'test_a' meine vereinigungsabfrage ist)?

muß in der Vereinigungsabfrage für jedes Feld ein Dummy Wert eingetragen werden.
hm, oha. kann mich leider erst nächste woche wieder ransetzen.
vielen dank erstmal,
karlo