WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Software (http://www.wcm.at/forum/forumdisplay.php?f=5)
-   -   Access2000 Felder aus verschiedenen Tabelle auslesen und verarbeiten (http://www.wcm.at/forum/showthread.php?t=89344)

robi1a 25.02.2003 20:58

Access2000 Felder aus verschiedenen Tabelle auslesen und verarbeiten
 
Hallo
Ich bin ein Access2000 Newbie und habe folgendes Problem. Ich habe in eienr Datenbank 2 Tabellen (Tabelle Adressen und Tabelle Fixwerte). Weiters habe ich habe ein Formular erstellt zur Eingabe der Adressen. Im der Tabelle habe ich ein Feld Kundennummer, dass als AutoWert definiert ist. Weiters habe ich ein Feld Referenznummer, dass bei der Eingabe automatisch erstellt werden soll. Die Referenznummer setzt sich aus der Kundennummer (AutoWert) und 2 Feldern in der Tabelle Fixwerte zusammen. Mein Problem ist nun: Wie kann ich im Formular auf die beiden Werte in Fixwerte zugreifen und die Referenznummer gleich errechnen und das Ergebnis gleich in die Tabelle Adressen eintragen? Ich fürchte das geht nur mit VBA. Ich habe das zwar mittels einer Abfrage schon geschafft, ist mir aber zu umständlich (dauert relativ lange bei einer grossen Tabelle).
Ich hoffe da kann mir wer weiter helfen.

wiff 25.02.2003 21:14

... errechnete Werte in die Tabelle eintragen verstößt gegen einen guten Entwurf einer Datenbank!!!!!

wiff

robi1a 25.02.2003 22:24

Wiff, dann hätte ich gerne eine Antwort auf folgende Problemstellung. In einer Tabelle sind 500-800 Adressen mit Kundennummer gespeichert. In einer anderen Tabelle hast Du Projektnummer, Projekttyp und Preis gespeichert. Aus Kundennummer, Projekttyp und Projektnummer wird eine 12stellige Referenznummer (kommt auf Zahlschein) erstellt (durch Stringverknüpfung mit führenden 0). In eine CSV Datei werden dann aus Telebanking die Buchungszeilen exportiert. Im Access besteht eine Verknüpfung auf diese CSV-Datei. Nun muss über die 12stellige Refernznummer herausgefilter werden, wer bezahlt hat und wer nicht um dann in weiterer Folge eine Mahnung zu drucken. Das ganze soll dann noch so aufgebaut sein, dass der Mahn-Prozess jederzeit laufen darf (z.B. einmal pro Woche).

Biri 25.02.2003 23:12

würde eine query bauen, die beide tabellen abfrägt und dieses "zugriffsfeld" zusammenbaut.

wie sind die spalten aufgebaut ?
...dann kann ich mal versuchen, eine query zusammenzubasteln!

die query kann dann auch - wenn nötig - das ergebnis in eine temporäre tabelle schreiben.

mfg
-hannes

robi1a 26.02.2003 23:42

Hallo Biri
Mit einem Query habe ich das zusammen gebracht. Es gibt nur 2 Probleme damit. Bei der Menge der Adressen dauert die Erstellung des Serienbriefs relativ lange. Zumal der PC auf dem das letztentlich laufen nicht der Schnellste ist. Das grössere Problem ist aber, dass ich bei den Mahnung sehr genau aufpassen muss welcher Zeitraum in die CSV Datei exportiert wurde. So könnte es vorkommen, dass eine Mahnung gedruckt wird, für jemanden der bereits bezahlt hat (nur weil die Eingezahlung vor dem Beginn des Exports liegt). Darum hätte ich mir die Lösung so vorgestellt.
Ich lasse die Einzahlungsprüfung 1x pro Woche laufen (über die letzte Woche) und trage die Einzahlung in die Adressliste dazu ein. Ist einmal ein Wert drinnen, bleibt er auch drinnen unabhängig vom geprüften Zeitraum. Am Ende der Zahlungsfrist bleiben dann nur die Säumigen übrig. So hätte ich mir das vorgestellt.

robi1a 26.02.2003 23:46

Ups, habe gerade gemerkt, dass ich im falschen Forum bin. Eigentlich wollte ich meine Anfrage ins Forum Programmierung stellen. Sorry

Biri 27.02.2003 09:00

hi !

dass die erstellung des serienbriefes lange dauert, liegt nicht am query. (außer es ist sehr komplex, was in diesem fall aber wohl nicht so ist)

Die Erstellung des Serienbreifes seitens Word dauert einfach lange.

hab das selbe gemacht - query hat 80 Zeilen (ergebnis in 1 sekunde da) - Erstellung eines Serienbriefes davon dauert jedoch ca. 1 minute (p4, 1.8 GHz) , obwohl das ergebnis des queries in eine tabelle eingefügt wurde.

soweit ich das was du vor hast verstanden habe, sollte es auch so funktionieren, wie du beschreibst. ;)

...quasi im query berücksichtigen, dass die Datensaätze nicht enthalten sind, welche das Kennzeichen "haben inzwischen bezahlt" gesetzt haben.

robi1a 27.02.2003 19:10

Ich habe die Tabelle Adressen (über ein Formular) offen habe nun folgende 2 Probleme:
1) Bei der Referenznummer muss ich 2 Werte aus der Tabelle Fixwerte lesen.
2) Bei der Zahlungsprüfung vergleiche ich die Referenznummer in Tabelle Adressen mit der Verknüpfung Konto (CSV Datei). Als Ergebnis muss ich einen Indikator in der Tabelle Adressen setzen.

Punkt 1 lässt sich glaube ich nur mit VBA lösen. Frage: wie lese ich in VBA einen Wert aus einer anderen Tabelle aus?
Punkt 2 kann mir da einen Query vorstellen. Wie kann ich das Ergebnis des Query in die Tabelle Adressen zurückschreiben?

Seidl 27.02.2003 23:47

Punkt 1:
dim conCSV as New ADODB.Connection
dim rstCSV as New ADODB.Recordset
conCSV.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\; Extended Properties=""text;HDR=Yes;FMT=Delimited"""
rstCSV.Open "SELECT * FROM test.csv", conCSV, adOpenStatic, adLockReadOnly, adCmdText

Du solltest dich besser früher als später mit Searchengines und der MSDN-Library anfreunden. Anderenfalls wirst du wahrscheinlich sehr bald ernstliche Probleme kriegen. Das obige Beispiel ist z.B. fast 1 zu 1 im Web zu finden. (gefunden mit 2 Versuchen auf www.alltheweb.com)

[siehe auch: http://support.microsoft.com/default...;en-us;q262537]


Punkt 2:
Mir ist offen gesagt nicht ganz klar was du meinst. Für mich hört es sich aber in etwa nach folgendem an:

conWosWasI.Execute "UPDATE tblZuÄndern SET Feld = Wert WHERE unterabfrage"

Al_Bundy99 03.03.2003 12:32

Lösungsversuch
 
Besuche einmal diese Seite dort stehen enorm gute Tips für Access

www.donkarl.com

Gruß
Al Bundy99


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag