If-Abfrage Access VBA
Hallo zusammen,
ich habe ein kleines Problem und komme auch nicht mehr weiter.
Ich habe in Access zwei verschiedene Tabellen. Auf dem ersten Tabellenblatt "Importtabelle" stehen in der ersten Spalte Zahlen willkürlich Zahlen zwischen 1 und 30. In der zweiten Spalten stehen willkürlich Zahlen zwischen 1 und 6.
Auf dem zweiten Tabellenblatt "Durchführungen" stehen in der ersten Spalte die Zahlen zwischen 1 und 30 in aufsteigender Reihenfolge und in der zweiten Spalte Zahlen zwischen 1 und 6 in aufsteigender Reihenfolge.
Meine Aufgabe ist es eine Abfrage zu jeder einzelnen Zeile der Importtabelle zu machen, dort die beiden Werte der ersten und zweiten Spalte einzulesen und in den Durchführungen die jeweilige Zahlenkombination mit einer Zählfunktion zu zählen!
Ich habe zu Beginn meines Codes die Zeilenanzahl der Importtabelle ermittelt, damit ich eine Laufvariable für die If-Abfrage habe.
Kann mir jemand bitte erklären, wie eine If-Abfrage über zwei Tabellenblätter hinweg funktioniert?
Viele Grüße und Danke im vorraus
ich habe ein kleines Problem und komme auch nicht mehr weiter.
Ich habe in Access zwei verschiedene Tabellen. Auf dem ersten Tabellenblatt "Importtabelle" stehen in der ersten Spalte Zahlen willkürlich Zahlen zwischen 1 und 30. In der zweiten Spalten stehen willkürlich Zahlen zwischen 1 und 6.
Auf dem zweiten Tabellenblatt "Durchführungen" stehen in der ersten Spalte die Zahlen zwischen 1 und 30 in aufsteigender Reihenfolge und in der zweiten Spalte Zahlen zwischen 1 und 6 in aufsteigender Reihenfolge.
Meine Aufgabe ist es eine Abfrage zu jeder einzelnen Zeile der Importtabelle zu machen, dort die beiden Werte der ersten und zweiten Spalte einzulesen und in den Durchführungen die jeweilige Zahlenkombination mit einer Zählfunktion zu zählen!
Ich habe zu Beginn meines Codes die Zeilenanzahl der Importtabelle ermittelt, damit ich eine Laufvariable für die If-Abfrage habe.
Kann mir jemand bitte erklären, wie eine If-Abfrage über zwei Tabellenblätter hinweg funktioniert?
Viele Grüße und Danke im vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 664431
Url: https://administrator.de/contentid/664431
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
vorausgesetzt in beiden Spalten der zweiten Tabelle stehen dieselbe Anzahl von Werten, geht es über eine verschachtelte IF-THEN-Struktur, die jede Kombination der Importtabelle mit jeder Kombination der Durführungstabelle vergleicht und zählt.
Kannst Du mal den bisherigen Codeausschnitt posten?
Gruß
SPACEINK
vorausgesetzt in beiden Spalten der zweiten Tabelle stehen dieselbe Anzahl von Werten, geht es über eine verschachtelte IF-THEN-Struktur, die jede Kombination der Importtabelle mit jeder Kombination der Durführungstabelle vergleicht und zählt.
Kannst Du mal den bisherigen Codeausschnitt posten?
Gruß
SPACEINK
Da reicht eine SQL Query für
SELECT count(*) as Anzahl
FROM Importtabelle
INNER JOIN Durchführungen ON Importtabelle.Spalte1=Durchführungen.Spalte1 AND Importtabelle.Spalte2=Durchführungen.Spalte2;
Zitat von @Michaeltobias:
Danke für die Hilfe, aber irgendwie komme ich damit nicht weiter.
Kann ich eine SQL Query in Visual Basic übertragen? und wie kann ich die Zählfunktion für die gefundenen Einträge darstellen?
Viele Grüße
Naja das ist ja das kleinste Problem. Dachte wenn jemand mit Access arbeitet der sollte sowas eigentlich wissen .Danke für die Hilfe, aber irgendwie komme ich damit nicht weiter.
Kann ich eine SQL Query in Visual Basic übertragen? und wie kann ich die Zählfunktion für die gefundenen Einträge darstellen?
Viele Grüße
Das kannst davon entweder eine eigene neue Abfrage von erstellen und die Query direkt in die SQL Ansicht pasten
Ergebnis sieht dann so aus:
Die Abfrage kannst du dann da benutzen wo du sie brauchst (in Formularen/Berichten etc.)
Oder wenn es unbedingt VBA sein muss, auch kein Thema
Sub DetermineEqualCombinationCount()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT count(*) as Anzahl FROM Importtabelle INNER JOIN Durchführungen ON Importtabelle.Spalte1=Durchführungen.Spalte1 AND Importtabelle.Spalte2=Durchführungen.Spalte2;")
rs.MoveFirst
MsgBox rs.Fields("Anzahl").Value
End Sub
Sub UpdateCounters()
DoCmd.RunSQL "UPDATE Importtabelle INNER JOIN Durchführungen ON (cint(Importtabelle.Maincase) = Durchführungen.Testfall) AND (Importtabelle.Subcase = Durchführungen.Teilfall) SET Durchführungen.Zählung = Durchführungen.Zählung+1;"
End Sub
Habe ich hier in Access erfolgreich getestet. Hast du wohl die Anpassungen an deine Tabellen fehlerhaft vorgenommen.