Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Daten in Formular einlesen

Begonnen von Torsten, Juni 23, 2011, 16:44:13

⏪ vorheriges - nächstes ⏩

Torsten

Hallo zusammen
ich habe ein kleines problem und ich hoffe es kann mir hier einer weiter helfen ........ :)
ich habe eine relative komplexe access datenbank. in dieser datenbank wird an einer stelle in einem formular auf knopfdruck eine tabelle in ein datenformular eingelesen. jetzt möchte ich ganz gerne das die daten nicht aus einer tabelle eingelesen werden sondern das die daten aus einer von der struktur gleichen abfrage ausgelesen werden ,,,,,,,
der debuggen zu der vorhanden ist sieht so aus :


Sub VerkaufEinlesen()       

Dim i%
        Dim VerkaufLKW As ADODB.Recordset
        Set VerkaufLKW = New ADODB.Recordset
        VerkaufLKW.CursorLocation = adUseClient
        VerkaufLKW.Open "SELECT * FROM VerkaufLKW;", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        With VerkaufLKW
            If .AbsolutePosition <> -1 Then
                .MoveFirst
                    For i% = 0 To .RecordCount - 1
                        ArtikelHinzu !Anzahl, ![EAN CODE], Modul.getFahrerName([FahrerID]), Modul.getFahrzeugName([FahrzeugID]), [Datum], getKundenNamen([_SysHersteller]), [Hofrechnung], [Provision], [Abrechnungsdatum]
                        .MoveNext
                    Next i%
                    .MoveFirst
                    For i% = 0 To .RecordCount - 1
                        .Delete
                        .MoveNext
                    Next i%
                    '.update
            End If
            .Close
        End With
        Set VerkaufLKW = Nothing

End Sub

ich hoffe einer von euch kann was damit anfangen den ich bin mit meinem wissen leider am ende
vielen dank und grüße
torsten

access 2002
windows 7 64 bit

DF6GL

Hallo,

es ist keine extra PN nötig...  ;)



Welchen Grund hat es, solche umständliche Methodik für das Anzeigen eines Abfrageergebnisses in einem Form zu verwenden?


Binde einfach das Formular an die Abfrage.. (Eigenschaft "Datenherkunft" bekommt den Abfragenamen verpasst)


Torsten

oh es ist ein sehr sehr kompliziertes formular und das einlesen ist in ganz vielen unterschiedlichen situationen möglich
der debuggen ist nur ein kleiner teil von dem was in dem formular alles passiert.
ich bekomme es einfach nicht hin den debuggen so umzuschreiben das er die daten aus einer abfrage ausliesst
kannst du mir dabei helfen ?

DF6GL

Hallo,

was ist ein "debuggen"?


Wenn die Abfrage die selbe Struktur (Spalten  und Datentypen) besitzt wie die Tabelle, dann einfach so:

VerkaufLKW.Open "SELECT * FROM abf_DeineAbfrage;", .....

Torsten

also debugggen nenne ich das was in vba programiert ist
das was so kompliziert ist wie du sagst
also ich habe das auch nicht geschrieben sondern mein programierer und ich habe mir mit der zeit einiges angeeignet .......
ich muss im grunde genommen nur das programierte was ich am anfang geschrieben habe so umschreiben das halt eine abfrage nennen sie wie mir verkauflkw2 geöffnet wird und mit den gleichen feldern wie die tabelle eingelesen wird
meinst du du kannst mir dabei helfen ?
grüße
torsten

DF6GL

Hallo,



also "debuggen" nennen wir hier Code  (Programmzeilen)....


"debuggen" ist der Vorgang, den Code von Fehlern zu bereinigen.



"ich muss im grunde genommen nur das programierte was ich am anfang geschrieben habe so umschreiben das halt eine abfrage nennen sie wie mir verkauflkw2 geöffnet wird und mit den gleichen feldern wie die tabelle eingelesen wird "


habe ich doch geschrieben..    es muss nur der richtige Abfragename an der rot markierten Stelle eingesetzt werden:



"nennen sie wie mir verkauflkw2 "

heißt sie nun so oder nicht...??



        VerkaufLKW.Open "SELECT * FROM verkauflkw2 ;", CurrentProject.Connection, adOpenKeyset, adLockOptimistic



Torsten

so ist das dann richtig ??
        Dim i%
        Dim VerkaufLKW2 As ADODB.Recordset
        Set VerkaufLKW2 = New ADODB.Recordset
        VerkaufLKW2.CursorLocation = adUseClient
        VerkaufLKW2.Open "SELECT * FROM verkauflkw2 ;", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
          With VerkaufLKW2
            If .AbsolutePosition <> -1 Then
                .MoveFirst
                    For i% = 0 To .RecordCount - 1
                        ArtikelHinzu !Anzahl, ![EAN CODE], Modul.getFahrerName([FahrerID]), Modul.getFahrzeugName([FahrzeugID]), [Datum],   getKundenNamen([_SysHersteller]), [Hofrechnung], [Provision], [Abrechnungsdatum]
                        .MoveNext
                    Next i%
                    .MoveFirst
                    For i% = 0 To .RecordCount - 1
                        .Delete
                        .MoveNext
                    Next i%
                    '.update
            End If
            .Close
        End With
        Set VerkaufLKW2 = Nothing
muss ich nicht irgendwo angeben das es sich um eine abfrage handelt und nicht um eine tabelle ??
grüße

Torsten

ich glaube das problem liegt ganz woanders ..... vielen dank schonmal für deine hilfe frank
also bei dem quellcode kommt in der zeile die du mir geschickt hast eine felhermeldung. ich habe die zeile schonmal identisch gehabt und auch die fehlermeldung.
ich habe gedacht das das am quellcode liegt aber dem ist nicht so!
also ich habe in dem quellcode ja einige felder die ins formular geschrieben werden. jetzt wollte ich hergehen und nicht alle daten rüber schreiben sondern nur einige bestimmte .
über eine abfrage wollte ich die fahrer id filtern und nur die daten für einen fahrer ins formular laden und nicht alle.
den wert für die fahrer id wollte ich aus dem geladenen formular entnehmen und genau das macht er nicht. wenn ich den wert fest in der abfrage hinterlege dann geht es .
sobald ich den wert aus der abfrage aus dem formular lade dann kommt er nicht klar ....... woran kann das liegen ??

database

Hallo,

Zitatsobald ich den wert aus der abfrage aus dem formular lade dann kommt er nicht klar

...und wie machst du das?

poste mal die Codezeile dazu

Torsten

hallo a
also in die abfrage habe ich den wert fahrer id und den frage ich über das geladene formular ab
da gibt es keinen quellcode.
grüße

database

Hi,

Zitatda gibt es keinen quellcode
na das halt' ich für ein Gerücht  ;)
Auch die Abfrage hat den ... SQL-Ansicht der Abfrage würde die SQL der Abfrage sichbar machen.  ;D

Versuch mal...
VerkaufLKW2.Open "SELECT * FROM verkauflkw2 WHERE FahrerID=" & Me!DeinIDFeld & ";", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

Torsten

hihi
natürlich ....aber als leihe denk ich natürlich nicht daran  :)
hier der code
SELECT VerkaufLKW.ID, VerkaufLKW.FahrerID, VerkaufLKW.[EAN CODE], VerkaufLKW.Datum, VerkaufLKW.FahrzeugID, VerkaufLKW.Anzahl, VerkaufLKW.Defekt, VerkaufLKW.WareModus, VerkaufLKW.gebucht, VerkaufLKW.nichtdrucken
FROM VerkaufLKW
WHERE (((VerkaufLKW.FahrerID)=[Formulare]![frmLieferscheine]![FahrerID]));
werde mal das was du gepostet hast versuchen ........
grüße

Torsten

hallo Peter
danke für deine hilfe ......
ungewollt hast du mir einen entscheidenen tip gegeben der mich zur lösung gebracht hat!
ich brauche doch garkeine extra abfrage zu machen den ich kann die FahrerID ja auch im Quellkod aus der Tabelle abfragen .........
so hat sich das problem gelöst und ich bekomme durch den kleine eintrag :
VerkaufLKW.Open "SELECT * FROM VerkaufLKW WHERE FahrerID = " & FahrerID & ";", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
das gewünschte ergebniss
Danke nochmal an dich und auch an alle anderen
grüße
torsten

database

Hallo,

also wie ich das sehe brauchst du da überhaupt keine Abfrage, da die Daten ausnahmslos aus ein und der selben Tabelle kommen!
Also sollte dein Code auch so funktionieren:


   Dim VerkaufLKW2 As ADODB.Recordset
   Set VerkaufLKW2 = New ADODB.Recordset
   Dim strSQL As String
       
   'SQL zusammensetzen
   strSQL = "SELECT VerkaufLKW.ID, VerkaufLKW.FahrerID, VerkaufLKW.[EAN CODE], VerkaufLKW.Datum, " & _
               "VerkaufLKW.FahrzeugID, VerkaufLKW.Anzahl, VerkaufLKW.Defekt, VerkaufLKW.WareModus, " & _
               "VerkaufLKW.gebucht, VerkaufLKW.nichtdrucken " & _
               "FROM VerkaufLKW " & _
               "WHERE VerkaufLKW.FahrerID=" & Me!FahrerID
               
    With VerkaufLKW2
           .CursorLocation = adUseClient
           .LockType = adLockOptimistic
           .CursorType = adOpenKeyset
           .ActiveConnection = CurrentProject.Connection
           .Open strSQL

            If .AbsolutePosition <> -1 Then
               .MoveFirst
                   For i% = 0 To .RecordCount - 1
                       ArtikelHinzu !Anzahl, ![EAN CODE], Modul.getFahrerName([FahrerID]), Modul.getFahrzeugName([FahrzeugID]), [Datum],   getKundenNamen([_SysHersteller]), [Hofrechnung], [Provision], [Abrechnungsdatum]
                       .MoveNext
                   Next i%
                   .MoveFirst
                   For i% = 0 To .RecordCount - 1
                       .Delete
                       .MoveNext
                   Next i%
                   '.update
           End If
           .Close
    End With
    Set VerkaufLKW2 = Nothing


Wenn es auch mit der vorangegangenen Lösung funktioniert, dann KÖNNTEST du den obigen Code einfach mal ausprobieren....    ;)

EDIT:

Du solltest dich bei   'FahrerID'   auf das aktuelle Formular beziehen!   Also :  Me!FahrerID