Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Bernie110 am Februar 09, 2012, 14:05:50

Titel: Frage zu Insert
Beitrag von: Bernie110 am Februar 09, 2012, 14:05:50
Hallo,

mit folgendem Code führe ich eine Anfügeabfrage von einem ungebunden Formular mit Datumsfeld aus.

Dim StrLadedatum As String

Dim strSQL As String
strSQL = "INSERT INTO TOUR_ERFASSUNG ( TU_ID,TU_FirmenName1,TU_FirmenName2, TU_MatchCode,TU_Adresse1,TU_Adresse2,TU_Land,TU_Plz,TU_Ort,Tu_Kontakt_ID,TU_Kontakt,TU_TelNr,TU_Faxnr,TU_Email,TU_Fahrzeug,TU_LKW_Nr_A,TU_LKW_Nr_B,TU_Handy_Fahrer,LM_Bestellt,LM,Leitweg,TU_OFFERTE,SNDG_ART,LTW,Fahrzeugart,Einsatzliste,Einsatzliste_Reihenfolge,Tourenart )" & _
"SELECT DISTINCT QYR_EINSATZFAHRZEUGE.TU_ID,QYR_EINSATZFAHRZEUGE.TU_FirmenName1,QYR_EINSATZFAHRZEUGE.TU_FirmenName2, QYR_EINSATZFAHRZEUGE.TU_MatchCode,QYR_EINSATZFAHRZEUGE.TU_Adresse1,QYR_EINSATZFAHRZEUGE.TU_Adresse2,QYR_EINSATZFAHRZEUGE.TU_Land,QYR_EINSATZFAHRZEUGE.TU_Plz,QYR_EINSATZFAHRZEUGE.TU_Ort,QYR_EINSATZFAHRZEUGE.Tu_Kontakt_ID,QYR_EINSATZFAHRZEUGE.TU_Kontakt,QYR_EINSATZFAHRZEUGE.TU_TelNr,QYR_EINSATZFAHRZEUGE.TU_FaxNr,QYR_EINSATZFAHRZEUGE.TU_Email,QYR_EINSATZFAHRZEUGE.TU_Fahrzeug,QYR_EINSATZFAHRZEUGE.TU_LKW_Nr_A,QYR_EINSATZFAHRZEUGE.TU_LKW_Nr_B,QYR_EINSATZFAHRZEUGE.TU_Handy_Fahrer,QYR_EINSATZFAHRZEUGE.LM,QYR_EINSATZFAHRZEUGE.LM,QYR_EINSATZFAHRZEUGE.Leitweg,QYR_EINSATZFAHRZEUGE.TU_OFFERTE,QYR_EINSATZFAHRZEUGE.SNDG_ART,QYR_EINSATZFAHRZEUGE.LeitwegBezeichnung,QYR_EINSATZFAHRZEUGE.Fahrzeugart,QYR_EINSATZFAHRZEUGE.Einsatzliste,QYR_EINSATZFAHRZEUGE.Einsatzliste_Reihenfolge,QYR_EINSATZFAHRZEUGE.Tourenart  FROM QYR_EINSATZFAHRZEUGE;"
CurrentDb.Execute strSQL, dbFailOnError


Der Code funktioniert so weit.

Nun möchte ich aus meinen ungebundenem Formular in das Datumsfeld ein Datum eingeben und dieses Datum mitübergeben.

Wie funktioniert das ?
Gruss
Bernie
Titel: Re: Frage zu Insert
Beitrag von: DF6GL am Februar 09, 2012, 14:23:16
Hallo,



Dim StrLadedatum As String

Dim strSQL As String
strSQL = "INSERT INTO TOUR_ERFASSUNG ( TU_ID,TU_FirmenName1,TU_FirmenName2, TU_MatchCode,TU_Adresse1,TU_Adresse2,TU_Land,TU_Plz,TU_Ort,Tu_Kontakt_ID,TU_Kontakt,TU_TelNr,TU_Faxnr,TU_Email,TU_Fahrzeug,TU_LKW_Nr_A,TU_LKW_Nr_B,TU_Handy_Fahrer,LM_Bestellt,LM,Leitweg,TU_OFFERTE,SNDG_ART,LTW,Fahrzeugart,Einsatzliste,Einsatzliste_Reihenfolge,Tourenart , Datumsfeld)" & _
"SELECT DISTINCT TU_ID,TU_FirmenName1,TU_FirmenName2,TU_MatchCode,TU_Adresse1,TU_Adresse2,TU_Land,TU_Plz,TU_Ort,Tu_Kontakt_ID,TU_Kontakt,TU_TelNr,TU_FaxNr,TU_Email,TU_Fahrzeug,TU_LKW_Nr_A,TU_LKW_Nr_B,TU_Handy_Fahrer,LM,LM,Leitweg,TU_OFFERTE,SNDG_ART,LeitwegBezeichnung,Fahrzeugart,Einsatzliste,Einsatzliste_Reihenfolge,Tourenart, " & Format(nz(Me!Datumsfeld,date),"\#yyyy-mm-dd\#") & " As Datumsfeld   FROM QYR_EINSATZFAHRZEUGE"
CurrentDb.Execute strSQL, dbFailOnError




Achtung: In der Darstellung hier gibt es scheinbare Zeilenumbrüche, die nicht sein dürfen... 
Titel: Re: Frage zu Insert
Beitrag von: Bernie110 am Februar 09, 2012, 14:41:02
Super ! Danke, passt & funktioniert.

Jetzt muss ich mir nur noch überlegen wie ich auf dieses Datum die Monat, Jahr & Woche berechne.

Wäre dies theoretisch auch möglich ?

Gruss
Benrie
Titel: Re: Frage zu Insert
Beitrag von: DF6GL am Februar 09, 2012, 14:45:23
Hallo,


schau mal die Funktion "Datepart()" in der VBA-Hilfe an...

Wobei es auch die  Month() und Year() -Funktionen für Monatszahl und Jahreszahl gibt.



Und nochmal der verschiedlich angebrachte Hinweis:  Es ist Unsinn, solche berechneten Werte in der Tabelle zu speichern.

Wenn es denn historische Gründe hat, dann seh ich jetzt mal drüber hinweg..   ;)
Titel: Re: Frage zu Insert
Beitrag von: Bernie110 am Februar 09, 2012, 14:51:25
Hi,

den Code hätte ich ja schon.
Ja es hat leider historische Gründe.  Damals als ich mit der DB anfing, wusste ich zwar wie man so etwas berechnet, aber nicht wie ich mit den Daten und Abfragen umgehen soll. Nenn es konzeptlosigkeit !

Wie heisst es so schön in deiner Signator.. Learning by dooing.


' Monats Wochen und Jahr berechnung
'----------------------------------------------------------------------
If Not IsNull(Me!Ladedatum) Or Me!Ladedatum > 0 Then
Me!Monat = Month(Me!Ladedatum)
Me!Jahr = Year(Me!Ladedatum)
Else:
Me!Monat = "0"
Me!Jahr = "0"
End If


If Me!Ladedatum > 0 Then Me!Woche = DatePart("ww", Me!Ladedatum, vbMonday, vbFirstFourDays)


Titel: Re: Frage zu Insert
Beitrag von: Bernie110 am Februar 09, 2012, 14:52:01
fast vergessen... ;)

Danke Franz, du hast mir mal wieder super geholfen !

Gruss
Bernie