Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Brauche auto. Zähler in Tabelle mittels SQL o. DAO
Gehe zu Seite 1, 2  Weiter
zurück: Tabellehistorie unterscheiden nach Gültigkeitsdatum weiter: Ein Feld mehrfach abfragen mit unterschiedlichen Bedingungen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Danny G.
Advanced VBA User


Verfasst am:
08. März 2005, 14:30
Rufname:
Wohnort: Berlin

Brauche auto. Zähler in Tabelle mittels SQL o. DAO - Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo Leute,

ich brauche mal wieder DRINGEND Eure Hilfe zu einer Abfrage. Und zwar steht die Abfrage ansich schon und wird mittels VBA dnamisch als SQL String erzeugt, doch ich brauche eine zusätzliche Spalte mit einem automatischen Zähler (wie der Autowert bei Access-Tabellen). Leider finde ich nichts in SQL, das dies automatisch macht (Datentyp, Funktion, etc.)

Ergebnis der Abfrage ist eine Tabelle, in der die Datensätze durchnummeriert sind. Leider klappt das nicht mit einer vordefinierten Access Tabelle mit Autowert! Wenn ich die Tabelle erstmalig fülle bekommen die Datensätze die Werte 1 bis 100. Lösche ich alle Sätze (was regelmäßig vorkommt) und fülle die gleiche Tabelle mit neuen Werten, so fangen die Zähler bei 100 an, also genau dort, wo das Ende des ersten Zählerbandes war. Und das geht immer so weiter...

Nun habe ich überlegt mittels SQL jedesmal die Tabelle neu zu generieren und anschließend zu füllen, doch in SQL gibt es ja keinen Datentyp Autowert oder eine ähnliche Funktion. Daher meine Zweite Überlegung. Ich habe die Tabelle gefüllt, die Spalte Zähler ist leer und ich fülle die erste Spalte automatisch mittels VBA DAO bis zum Ende der Tabelle mit den Werten 1 bis Anzahl Datensätze. Doch leider kenne ich mich nur mit SQL aus und nicht mit den DAO Funktionen/Befehlen. Geht das überhaupt?

Kann mir einer Helfen oder einen alternativen Lösungsansatz geben? Voraussetzung: Ich brauche aber dringend zu jeder neu gefüllten Tabelle eine Spalte mit einem Zähler beginnend bei 1.

Vielen Dank schon mal im voraus!
snurb
EDV-Anfänger


Verfasst am:
08. März 2005, 18:28
Rufname:


AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA - AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA

Nach oben
       

Hi,

die einfachste Methode: nach dem Löschen der DS die Db komprimieren und reapaieren(Menü "Extras" --> "Datenbankdienstprogramme" --> "Komprimieren und Reparieren").

Dann sollte der Autowert auch wieder bei 1 beginnen.

Ciao
snurb

_________________
WinXp x63 2/3 SP2; Office03 Sp2
Danny G.
Advanced VBA User


Verfasst am:
09. März 2005, 11:12
Rufname:
Wohnort: Berlin

AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA - AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA

Nach oben
       

Hab ne super Lösung mit dem DAO-Verweis gefunden! Erzeuge mir einfach selber ein Nummernband von 1 bis max. und trage es dann mit einer Zählschleife in der Spalte Zähler meiner neu gefüllten Tabelle ein. Wenn einer interesse an den Code hat, dann sagt kurz bescheid. Ich kann ihn jetzt nur nicht posten, weil ich den Code auf Arbeit habe und gerade von zuhause poste. Tip: Recordset anschauen, falls mal jemand das gleich Prob hat. Dort besonders Edit, Update, Move

Trotzdem danke für den Lösungsansatz, doch leider ist der nicht mit Automation zu bewältigen.
vroni2580
Im Profil kannst Du frei den Rang ändern


Verfasst am:
06. Jul 2009, 14:10
Rufname:

AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA - AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA

Nach oben
       

Hallo Danny G.,

es ist zwar schon ein weilchen her, dass Du gepostet hast, aber ich denke, dass der Code genau das ist, was ich für meine Abfrage benötige!
Wenn Du so lieb wärst und Deinen Code bitte veröffentlichen würdest, wäre das super!
Danke schonmal...

LG vroni
Gast



Verfasst am:
06. Jul 2009, 14:46
Rufname:


AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA - AW: Hilfe: Brauche auto. Zähler in Tabelle mittels SQL o. DA

Nach oben
       

Hallo,
nun die Lösung ist sehr alt und vielleicht deshalb überholt Wink.

Der TO wollte eine laufende Nummerierung für eine Abfrage. Dafür eine neue Tabelle anzulegen ist die schlechteste Variante.
Hast du eine beliebige eindeutige ID, kannst du die laufende Nummer per SQL erzeugen :
FAQ 3.11 Laufende Nummer/Summe in Abfragen
und brauchst die Daten nicht zusätzlich zu speichern.

Gruß Mike
vroni2580
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Jul 2009, 09:08
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo Mike,

danke für den Tip. Ich hatte diesen Link auch schon gefunden, aber weiß leider nicht, wo genau ich das hinschreiben soll. Die Nummer muss aber meines erachtens doch gespeichert werden, weil ich diese in einer weiteren Abfrage zum Filtern nutze.
Ich habe momentan für den automatischen Zähler diesen Code eingebaut:
Code:
Public Function Zahler()
On Error GoTo errZahler
    Dim lform As DAO.Recordset
    Dim lNr As Integer
   
    Set lform = Forms![_101GWB].RecordsetClone
    lform.Bookmark = Forms![_101GWB].Bookmark
    lNr = lform.AbsolutePosition + 1
    Zahler = lNr
    Exit Function
errZahler:
    Zahler = 0
End Function
Funktioniert auch, nur bräuchte ich jetzt noch nen Code, der diese temporäre Zahl in dem entschprechenden Feld meiner Tabelle aktualisiert bzw. hineinschreibt und abspeichert.

Gruße vroni
Gast



Verfasst am:
09. Jul 2009, 11:08
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo,
temporäre Tabellen/Spalten klingen immer "unschön". Dies deutet meist auf ein falsches Datenmodel.

Was willst du mit deiner Nummerierung bezwecken? Normalerweise sollte die Tabelle einen Autowert haben. Diese Nummer ist zwar u.U. nicht fortlaufen, dafür aber beständig.

Gruß Mike
Gast



Verfasst am:
09. Jul 2009, 13:30
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

"unschön": Ich wusste nicht, wie ich es anders ausdrücken sollte... Smile

Mein Ziel:
Ich habe einen Bericht, der ca. 1000 Seiten umfasst (für jeden Kunden eine Seite) und möchte die jeweilige Seite an den bestimmten Kunden senden.
Ich habe nun einen Code erstellt, der diese Seiten einzeln unter der jeweiligen Kundennummer speichert und an eine Mail anfügt.
Dazu habe ich händisch aus der Abfrage die einzelnen Datensätze nummeriert und sie in einer Schleife ablaufen lassen (LaufendeNr +1). Wenn Zahlen zwischendurch fehlen funktioniert der Code nicht. Ich möchte nun die Nummerierung auch noch automatisieren.
Gast



Verfasst am:
09. Jul 2009, 13:38
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo,
Zitat:
Dazu habe ich händisch aus der Abfrage die einzelnen Datensätze nummeriert und sie in einer Schleife ablaufen lassen (LaufendeNr +1).
Wozu brauchst du diese Nummerierung?

Zitat:
Dazu habe ich händisch aus der Abfrage die einzelnen Datensätze nummeriert
Willst du die Nummerierung in einer Abfrage kannst du den verlinkten (FAQ 3.11) Code nutzen.

Gruß Mike
Gast



Verfasst am:
09. Jul 2009, 16:03
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Mein Code sieht bis jetzt so aus:
Code:
Private Sub Befehl999_Click() 'Bericht einzeln speichern
    Const cstrBericht   As String = "Rechnung"
    Dim strDatei        As String
    Dim rs              As DAO.Recordset
    Dim wer             As String
    Dim datsatz, i      As Integer
    Dim myOutlook       As Object
    Dim mailitem        As Object
    Dim oApp            As Object
    Dim AlterName, Neuername
    Dim WshShell

    Versandd = InputBox("Bitte geben Sie das Versanddatum ein! " & _
                        "(Format: dd.mm.jj)", "Versand Rechnung")
    Set rs = Me.RecordsetClone
    rs.MoveFirst
    If Not (rs.BOF And rs.EOF) Then rs.MoveFirst        ' Zum ersten Datensatz
    i = rs.RecordCount
    For datsatz = Fortnr To i
        Me.Refresh
        wer = "[Fortnr]=" & datsatz
        DoCmd.OpenReport cstrBericht, acNormal, , wer, acHidden
        Set Application.Printer = Application.Printers(strPrinterOld)
        Application.Printer = Application.Printers("BK-Drucker")
        Me.TimerInterval = 1000
        MilliSekunden = 10000
        Ende = Timer + (MilliSekunden / 1000)
        Do While Timer < Ende
            DoEvents
        Loop
        Me.TimerInterval = 0
        fpath = "H:\Anwendungsdaten\VAM\"
        AlterName = fpath & "Rechnung.pdf"
        Neuername = fpath & rs!Jahr & " Los " & rs!Kundennr & ".pdf"
        Name AlterName As Neuername        ' Datei verschieben und umbenennen.
        Set myOutlook = CreateObject("Outlook.Application")
        Set mailitem = myOutlook.CreateItem(olMailItem)
        With mailitem
            .To = rs!Email   'Den Empfänger der Mail festlegen
            .Subject = "Rechnung " & rs!Rechung & ", von " & rs!Jahr & _
                       ", Kundennummer " & rs!Kundennr
            .Body = "..."
            .DeferredDeliveryTime = Versandd & " " & Time + _
                                    TimeValue("00:30:00")
            .OriginatorDeliveryReportRequested = True
            .Attachments.Add Neuername '(intCount)
            .Display
            Set WshShell = CreateObject("WScript.Shell")
            WshShell.AppActivate Mail
            'Sendet ein "Alt-S", Outlook sendet Mail sofort
            'ohne Sicherheitsabfrage:
            WshShell.SendKeys "%s"
            'Set Mail = Nothing
            'Set outl = Nothing
            'Set WshShell = Nothing
        End With
        Kill fpath & rs!Jahr & " Los " & rs!Kundennr & ".pdf"
        DoCmd.Close acReport, cstrBericht
        rs.Edit
        rs.Update 1, 0
        rs.MoveNext
    Next datsatz
    Set rs = Nothing
End Sub
und FortNr hab ich händisch eingegeben (zahlen von 1 bis ...)
KlausMz
Moderator Access


Verfasst am:
09. Jul 2009, 16:15
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo,
der Sinn der fortlaufenden Nummer erschließt sich mir nicht. Zu was wird diese denn benötigt?

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
09. Jul 2009, 19:25
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo,
@Klaus: die ID dient wohl dazu die Datensätze zu filtern

Jede Tabelle sollte eigentlich eine eindeutige ID haben (Primärschlüssel). Im einfachsten Fall ist dies eine Autowert. Sollte das bei dir nicht so sein, füge an die Originaltabelle eine entsprechende Spalte (DeineID) an.

Damit sollte nachfolgender (UNGETESTETER) Code funktionieren:
Code:
    ' ...
    Set rs = Me.RecordsetClone
    rs.MoveFirst
    If Not (rs.BOF And rs.EOF) Then rs.MoveFirst        ' Zum ersten Datensatz
    While Not rs.EOF
        Me.Refresh
        wer = "[DeineID]=" & rs![DeineID]
        DoCmd.OpenReport cstrBericht, acNormal, , wer, acHidden
        ' ...
        rs.MoveNext
    Wend

Gruß Mike
KlausMz
Moderator Access


Verfasst am:
09. Jul 2009, 19:44
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo,
Zitat:
Ich habe nun einen Code erstellt, der diese Seiten einzeln unter der jeweiligen Kundennummer speichert und an eine Mail anfügt.
Dazu habe ich händisch aus der Abfrage die einzelnen Datensätze nummeriert und sie in einer Schleife ablaufen lassen (LaufendeNr +1).
Es gibt doch aber eine Kundennummer, die muss ja eindeutig sein. Wozu also die zusätzliche LfdNr, nur für die Schleife?
Man kann doch einfach mit MoveNext die Datensätze durchlaufen und jeweils das Mail / den Bericht erstellen. Die Variable "Wer" ist dann einfach die Kundennummer.
Irgenwie habe ich da Verständnisprobleme, was aber nichts heist. Very Happy

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
vroni2580
Im Profil kannst Du frei den Rang ändern


Verfasst am:
20. Jul 2009, 09:48
Rufname:

AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - AW: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hallo,

ich weiß (leider) auch nicht genau, warum ich das brauche, habe aber etliche Codes getestet und nur so funktioniert es! Wink

Im Moment stehe ich aber wieder mal vor nem kleinen black-out.
Ich habe ein sich immer neu berechnendes Feld in dem Formular. Beim Klick auf einen Butten soll der Wert in eine Tabelle übertragen werden. - Ich brauche dies als "Historie". Wie kann ich das am besten machen? Im Formular sind mehrere Datensätze, zu jedem gehört ein Feld, daher wäre mein Ansatz mit einer "For Each - Next-Schleife", aber irgendwie funktioniert das nicht... Sad
Willi Wipp
Moderator


Verfasst am:
21. Jul 2009, 01:40
Rufname:
Wohnort: Raum Wiesbaden


Re: Brauche auto. Zähler in Tabelle mittels SQL o. DAO - Re: Brauche auto. Zähler in Tabelle mittels SQL o. DAO

Nach oben
       

Hi Danny G.,

ich fuerchte habe dein neues Problem nicht wirklich verstanden Confused
In der Regel werden aber die zur Berechnung notwendigen Daten und nicht die Ergebnisse gespeichert!

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle sichern 5 alfikoe 946 05. Mai 2004, 20:26
lothi Tabelle sichern
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Union oder join Abfrage 4 Franzi 1495 05. Mai 2004, 15:18
Franzi SQL - Union oder join Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Autowert in bestehende Tabelle 1 Gingi 729 23. Apr 2004, 11:45
mabe38 Autowert in bestehende Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle formatiert in txt-Datei exportieren 1 robby 1115 12. Apr 2004, 23:10
Helge Tabelle formatiert in txt-Datei exportieren
Keine neuen Beiträge Access Tabellen & Abfragen: Werte aus Formular per VBA in andere Tabelle anfügen 1 Gast 1861 04. Apr 2004, 21:27
el_gomero Werte aus Formular per VBA in andere Tabelle anfügen
Keine neuen Beiträge Access Tabellen & Abfragen: neue Tabellen erstellen aus vorhandener Tabelle 6 moni 2010 29. März 2004, 15:39
moni neue Tabellen erstellen aus vorhandener Tabelle
Keine neuen Beiträge Access Tabellen & Abfragen: ausgeblendete Tabelle wieder einblenden 2 Dana79 2758 24. März 2004, 11:54
Dana79 ausgeblendete Tabelle wieder einblenden
Keine neuen Beiträge Access Tabellen & Abfragen: Dynamische Tabelle erstellen? 1 trabifant 1341 11. März 2004, 17:12
Willi Wipp Dynamische Tabelle erstellen?
Keine neuen Beiträge Access Tabellen & Abfragen: Mit SQL auf zwei verschiedene Abfrage weisen 4 Gast 1585 07. Feb 2004, 15:00
Willi Wipp Mit SQL auf zwei verschiedene Abfrage weisen
Keine neuen Beiträge Access Tabellen & Abfragen: Suche Hilfe zu SQL (DAO 351 MS) - Abfrage 3 Berny_H 1005 04. Feb 2004, 11:41
borstel Suche Hilfe zu SQL (DAO 351 MS) - Abfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht 1 caro456 1832 27. Jan 2004, 20:03
Willi Wipp Abfrage, die sich auf 2 Abfragen + 1 Tabelle bezieht
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz aus tabelle löschen und andere speichern 1 itarus 1119 21. Jan 2004, 16:02
Berni99 Datensatz aus tabelle löschen und andere speichern
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum