Hi Leute,
ich habe nen kleinen bis mittelschweres Problem!
Dazu muß ich sagen, ich bin kein Programmierer oder so, ich habe auch noch nicht sehr viel programmiert!!
So nun zu meinem problem! Ich habe mit Access und VBA mir eine kleine Datenbank erstellen wollen. Habe dazu ein Formular erstellt, wo mann die Daten eingeben kann! Zu erst habe ich ein Label gemacht, wo man sie die Nummer(Primärschlussel) raussuchen kann. Danach kann man Name Straße usw eingeben! Wenn ich dann aber auf speichern klicke, schreibt er das immer in die oberste Zeile in meiner Tabelle, und nicht in die Zeile in welcher ich die Nummer gesucht habe! Es muß da noch irgendein Befehl oder so was geben?
Ich habe es vielleicht etwas zu komplieziert geschrieben, aber vielleicht könnt ihr mir ja trotzdem helfen! Ich schreib meinen Quelltext von VBA einfach mal mit hier rein.
Option Compare Database
Option Explicit
Private Sub cmdschl_Click()
DoCmd.Close
End Sub
Ab hier soll er die Labels in den Datensatz speichern
Private Sub cmdspeichern_Click()
Dim rst As ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = CurrentProject.Connection
Set rst = New ADODB.Recordset
Dim db As Database
Dim rs As Recordset
Dim Krit As String
If IsNull(lblnummer1) Then
MsgBox "Bitte Such-ID eingeben.", 64
lblartikel1.SetFocus
Else
Set db = CurrentDb()
Set rs = db.OpenRecordset("Datensatz", dbOpenSnapshot)
Krit = "Auktionsnummer='" & lblnummer1 & "'"
rs.FindFirst Krit
With rst
.Open "Datensatz", conn, adOpenKeyset, adLockOptimistic
.Fields("eBayName") = lblename
.Fields("Name") = lblName
.Fields("Straße") = lblstrasse
.Fields("PLZ") = lblplz
.Fields("Ort") = lblort
.Fields("Gebot") = lblgebot
.Fields("Porto") = lblporto
.Fields("Gesamtpreis") = lblgesamt
.Update
.Close
End With
End If
Set rst = Nothing
Set conn = Nothing
End Sub
Ab hier sucht den Primärschlüssel und gibt die Daten aus der Tabelle an die Labels weiter
Private Sub cmdsuchen_Click()
On Error GoTo fehler
Dim db As Database
Dim rs As Recordset
Dim Krit As String
If IsNull(lblnummer1) Then
MsgBox "Bitte Such-ID eingeben.", 64
lblartikel1.SetFocus
Else
Set db = CurrentDb()
Set rs = db.OpenRecordset("Datensatz", dbOpenSnapshot)
Krit = "Auktionsnummer='" & lblnummer1 & "'"
rs.FindFirst Krit
If rs.NoMatch Then
MsgBox "Die von Ihnen eingegebene ID wurde in der Datenbank nicht gefunden.", 64, "http://www.access-home.de"
Else
lblartikel1 = rs!Artikel
lblnummer1 = rs!Auktionsnummer
lblename = rs!eBayName
lblName = rs!Name
lblstrasse = rs!Straße
lblplz = rs!PLZ
lblort = rs!Ort
lblgebot = rs!Gebot
lblporto = rs!Porto
lblgesamt = rs!Gesamtpreis
End If
End If
ende:
Exit Sub
fehler:
MsgBox Err.Description
Resume ende
End Sub
Private Sub lblgebot_BeforeUpdate(Cancel As Integer)
Dim Gebot As Double, Porto As Double
Gebot = lblgebot
Porto = lblporto
lblgesamt = Gebot + lblporto
End Sub
Private Sub cmddruck_Click()
If lblporto > 4 Then
On Error GoTo Err_cmddruck_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Druck"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_cmddruck_Click:
Exit Sub
Err_cmddruck_Click:
MsgBox Err.Description
Resume Exit_cmddruck_Click
Else
On Error GoTo Err_cmddruck_Click
Dim stDocName1 As String
Dim stLinkCriteria1 As String
stDocName1 = "Paeckchen"
DoCmd.OpenForm stDocName1, , , stLinkCriteria1
Exit Sub
MsgBox Err.Description
Resume Exit_cmddruck_Click
End If
End Sub