chrislm
Goto Top

Inhalt aus einer anderen Accesstabelle einfügen

Hallo.
Ich bin gerade dabei ein Accessprogramm am basteln um für verschiedene Kurse die Stunden abzurechnen.
Gedacht hatte ich mir das so:
Eine Tabelle mit den Kursen (tbKurse) mit folgenden Spalten:
ID, Kursname, Stundenlohn
Dann eine Tabelle (Stunden)
ID, Datum, Kursbeginn, Kursende, Kursname, Stundendauer, Bemerkung, Stundenlohn, Lohn

Nun habe ich ein Formular mit Stunden in dem ich die Daten eintragen kann. Über ein Kombinationsfeld kann ich nun den Kurs auswählen welcher aus der tbkurse kommt. Die ID vom Kurs wird dann in der Tabelle Stunden als Kursname abgelegt. Leider bekomme ich es nicht hin das er den Stundenlohn mit aus der Tabelle holt sodass ich damit rechnen kann.
Über eine Ereignisprozedur wollte ich mir dann den Stundenlohn aus der Tabelle holen.
Me.Stundenlohn = DLookup("[Stundenlohn]", "tbKurse"....
Aber ich bekomme das nicht hin das er mir den Stundenlohn aus der Tabelle tbKurse in die Tabelle Stunden ebenfalls in die Tabelle Stundenlohn einfügt.

Content-Key: 215445

Url: https://administrator.de/contentid/215445

Printed on: April 25, 2024 at 04:04 o'clock

Member: chrislm
chrislm Aug 28, 2013 at 13:48:49 (UTC)
Goto Top
Also ich habe da schon einiges versucht und gelesen. Ich denke mit einem SQL befehl Insert Into könnte es klappen. habe aber bisher noch kein erfolg gehabt, hat jemand ein funktionierendes Beispiel?
Member: chrislm
chrislm Aug 29, 2013 updated at 09:58:06 (UTC)
Goto Top
Ich habs, nun, für alle die ebenfalls so etwas brauchen habe ich den fertigen Code hier hinterlegt:

Option Compare Database


Private Sub Kombinationsfeld17_AfterUpdate()
Dim befehl As String
Dim Testsnr As Integer
Dim kn1 As Integer
Dim rst As DAO.Recordset
   Dim merken1
   Dim fso As Object


Me.Stundendauer = DateDiff("s", [Kursbeginn], [Kursende]) / 3600  

kn1 = Me.Kursname


   


   Set Dbs = CurrentDb
  befehl = "SELECT tbKurse.ID, tbKurse.Stundenl FROM tbKurse WHERE (((tbKurse.ID)=" & kn1 & "));"  
   Set rst = Dbs.OpenRecordset(befehl)


   With rst
        If .RecordCount > 0 Then

            
            .MoveLast
            .MoveFirst
            
            While Not .EOF

               
               merken1 = !Stundenl

               
               Me.Stundenlohn = merken1
                  
               .MoveNext
            Wend
        
        End If
        
   End With
   rst.Close

Me.Lohn = DateDiff("s", [Kursbeginn], [Kursende]) / 3600 * Me.Stundenlohn  
End Sub