![]() |
![]() |
|
![]() |
![]() |
|
Software Rat & Tat bei Softwareproblemen |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 03.07.2000
Beiträge: 240
|
![]() 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. |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 12.04.2000
Beiträge: 214
|
![]() ... errechnete Werte in die Tabelle eintragen verstößt gegen einen guten Entwurf einer Datenbank!!!!!
wiff |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 03.07.2000
Beiträge: 240
|
![]() 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).
|
![]() |
![]() |
![]() |
#4 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() 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 |
![]() |
![]() |
![]() |
#5 |
Veteran
![]() Registriert seit: 03.07.2000
Beiträge: 240
|
![]() 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. |
![]() |
![]() |
![]() |
#6 |
Veteran
![]() Registriert seit: 03.07.2000
Beiträge: 240
|
![]() Ups, habe gerade gemerkt, dass ich im falschen Forum bin. Eigentlich wollte ich meine Anfrage ins Forum Programmierung stellen. Sorry
|
![]() |
![]() |
![]() |
#7 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() 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. |
![]() |
![]() |
![]() |
#8 |
Veteran
![]() Registriert seit: 03.07.2000
Beiträge: 240
|
![]() 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? |
![]() |
![]() |
![]() |
#9 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() 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" |
![]() |
![]() |
![]() |
#10 |
Veteran
![]() |
![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|