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
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)
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 ?
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;", .....
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
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
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
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 ??
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
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
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
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
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
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