+ Antworten
Ergebnis 1 bis 6 von 6

Thema: VBA Datensatz

  1. #1
    PeterPan83
    Gast Avatar von PeterPan83

    VBA Datensatz

    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

  2. #2
    Gottesanbeter/in Avatar von ulmos

    Registriert seit
    19.12.04 - 17:51
    Beiträge
    1.672
    Thanks
    0
    Thanked 0 Times in 0 Posts

    AW: VBA Datensatz

    Starte mal den Debugger und sieh nach, ob er den Wert auch wirklich findet.
    Btw. für was ist das zweite & am Ende des Find-Kriteriums?
    Im Musik Forum kannst du hunderte TV und Radiosender Live hören.

  3. #3
    PeterPan83
    Gast Avatar von PeterPan83

    AW: VBA Datensatz

    Hi,
    also der Debugger meldet nichts, und das zweite und kann ich nicht weg nehmen, weil der Debugger dann nen Fehler meldet.

  4. #4

    Klick den Co-Mod!

    Avatar von Alfifred

    Registriert seit
    1.5.04 - 15:32
    Beiträge
    698
    Thanks
    0
    Thanked 0 Times in 0 Posts

    AW: VBA Datensatz

    Welcher Fehler kommt da, wenn ich Fragen darf?

  5. #5
    PeterPan83
    Gast Avatar von PeterPan83

    AW: VBA Datensatz

    Es kommt gar keine Fehlermeldung, es ist nur so, daß er die Daten immer in die erste Reihe der Tabelle schreibt und nicht in die Reihe, die ich gesucht habe!

  6. #6
    PeterPan83
    Gast Avatar von PeterPan83

    AW: VBA Datensatz

    Also ich habe jetz schon etwas rausgefunden! Jetzt habe ich aber noch ein problem und zwar in der Zeile:

    .Open "Select * from Datensatz where (Auktionsnummer = lblnummer1)", conn, adOpenKeyset, adLockOptimistic

    Dort kommt immer eine Fehlermeldung, das kein Wert eingetragen wurde. aber unter lblnummer1 wird mir ein Wert ausgegeben. Und wenn ich für lblnummer1 z.b. 1000 eintrage funktioniert es auch ohne Fehler. Kann mir jemand sagen, woran das liegt??

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Ja
  • Beiträge bearbeiten: Ja
  •