Zum Inhalt springen

SQL in VBA ACCESS97


ultragleise

Empfohlene Beiträge

ich hab da ein kleines bis mittleres problem:

ich hab ein formular, in welches ich einen namen und ein jahr angebe.

in abhängig keit von diesen werten soll eine select-abfrage ausgeführt werden (muß man nicht unbedingt sehen) und die ergebnisse dieser abfrage sollen dann nach word (bestimmtes dokument) eportiert werden.

geht das überhaupt?

das problem was ich hab ist, dass ich nicht weiß, wie ich die ergebnisse meiner abfrage in dem VBA-code ansprechen kann -> AbfrageXYZ,spalte1,zeile1 nach word.textmarke!

vielleicht sollte man das erbenis der select-anweisung in eine tempöräre tabelle klattschen und von dort aus dann die werte in das word-dokument schreiben.

eigentlich weiß ich aber nicht, wie ich das anstellen soll.

also werte ausm formular ins word is ja kein ding...da stehen ja immer fixe werte...aber in einer tabelle/abfrage/view gibts ja auch noch die zeilen...un die weiß ich net, wie ich die ansprechen soll!

Ideen?!

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gehn tuts schon, wenn du die Werte nicht in einem Formular sondern in einer Tabelle gespeichert hast.

Dann kannst du mittels SQl - Abfrage darauf zugreifen, die Abfrage temporär behalten und die Werte einzelnd nach Word übergeben.

Das ist vom Prinzip eine sehr komplexe Aufgabenstellung und es wäre sicherlich für alle Seiten einfacher, wenn du genau die Feldbezeichnungen deiner Tabelle inklussive Tabellenbezeichnung, sowie die Steuerelementbezeichnung innerhalb deines Formulares mit der Formularbezeichnung nennen würdest.

Ansonsten würden wir ewig aneinander vorbeireden.

PS : Falls morgen Interesse, habe morgen früh Zeit, dann können wir das hier auf dem Board lösen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

das ist ja klasse...

es geht um eine datenbank, in der ich azubi-daten (name,firma,jahrgang...), abteilungs-daten (abteilung, ansprechpartner,firma...) un diverses andere zeug speicher.

diese datenbank dient dazu, die einzelnen praxisphasen der azubis zu archivieren, um den azubis einen durchlaufplan (jährlich) aushändigen zu können.

zudem wird statistik für die einzelnen abteilungen geführt (wer hatte wann wieviele azubis...+historie).

die tabellenstruktur ist wie folgt:

tbl_Abteilungen (ID,Firma,Abteilungsbezeichnung,AB_Name,AB_Vorname...);

tbl_Auszubildende(ID_Personalnummer,Name,Vorname,ID_Ausbildungsberuf,Jahrgang...);

tbl_Beruf(ID,Beruf) ->jedem ausbildungsberuf ist ein numerischer schlüssel gegeben;

tbl_Durchlauf(ID_DURCHLAUF,JAHR,KW,ID_AZUBI,ID_ABT,Beginn)--> id_durchlauf ist bei dieser tabelle der schlüssel. diese tabelle wird über ein formular gefüllt. diese tabelle ist verknüpft mit tbl_Abteilungen und tbl_Auszubildende. KW ist die kalenderwoche des jeweiligen jahres, welches auch gespeichert wird.

so kann ich zuweisen, welcher azubi in welchen wochen, i n welchenm jahr welche abteilung besucht hat. 'Beginn' wird über KW und Jahr durch ein VBA-scribt errechnet...so hab ich dann den Montag einer KW als datum.

jetzt zum problem: es soll für jeden azubi selektiv ein durchlaufplan erstellt werden. die vorlage existiert als DOT und soll jetzt gefüllt werden.

ich öffne formular, wähle azubi und jahr, führe dann folgende abfrage aus:

SELECT tbl_Auszubildende.Vorname, tbl_Auszubildende.Name, tbl_Durchlauf.KW, tbl_Durchlauf.JAHR, tbl_Abteilungen.Abteilungsbezeichnung, tbl_Abteilungen.Abteilungsbezeichnung_lang, tbl_Durchlauf.Beginn

FROM (tbl_Durchlauf INNER JOIN tbl_Abteilungen ON tbl_Durchlauf.ID_ABT = tbl_Abteilungen.ID) INNER JOIN tbl_Auszubildende ON tbl_Durchlauf.ID_AZUBI = tbl_Auszubildende.ID_Personalnummer

WHERE (((tbl_Durchlauf.JAHR)=[Forms]![frm_Auswertung_Azubi]![sEL_JAHR]) AND ((tbl_Durchlauf.ID_AZUBI)=[Forms]![frm_Auswertung_Azubi]![AZUBI]))

ORDER BY tbl_Durchlauf.KW;

...das ist die unterabfrage auf welche ich dann folgende abfrage ausführe:

SELECT Durchlaufplan_Azubiauswertung_SQ.Vorname, Durchlaufplan_Azubiauswertung_SQ.Name, Count(Durchlaufplan_Azubiauswertung_SQ.KW) AS [Anzahl von KW], Durchlaufplan_Azubiauswertung_SQ.JAHR, Durchlaufplan_Azubiauswertung_SQ.Abteilungsbezeichnung, Durchlaufplan_Azubiauswertung_SQ.Abteilungsbezeichnung_lang, First(Durchlaufplan_Azubiauswertung_SQ.Beginn) AS [ErsterWert von Beginn]

FROM Durchlaufplan_Azubiauswertung_SQ

GROUP BY Durchlaufplan_Azubiauswertung_SQ.Vorname, Durchlaufplan_Azubiauswertung_SQ.Name, Durchlaufplan_Azubiauswertung_SQ.JAHR, Durchlaufplan_Azubiauswertung_SQ.Abteilungsbezeichnung, Durchlaufplan_Azubiauswertung_SQ.Abteilungsbezeichnung_lang;

ich erhalte dann eine liste, auf der alle werte stehen, die ich für mein DOT brauche.

wenn das jetzt zu kompliziert werden sollte, baue ich das alles in einen bericht...somit thätte ich das problem sehr feige umschifft.

wäre aber coll, wenn das irgendwie gängig wäre...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...