Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenbank Wert wird nicht übernommen

Datenbank Wert wird nicht übernommen
12.02.2023 17:23:44
Samdra
Hallo zusammen, leider habe ich noch ein Problem mit meiner Datenbank.
Ich wollte einen Eintrag aus der Datenbank bearbeiten. Hierzu habe ich mir einen Code erstellt, der leider nicht funktioniert. Es kommt immer wieder die Fehlermeldung 400. Als ich im Editor mit F8 durchgegangen bin, kam bei 'Kundenbearbeiten ein Laufzeitfehler 1004. Sicher stimmt meine Schlaufe Else nicht. Kann mir bitte jemand helfen.
Sub KundenChange_EingabeDB()
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = tb_Datenbank.ListObjects(1)
Dim Zeile As Long
'Kunden anlegen oder bearbeiten?
If tb_Eingabeformular.Shapes.Range(Array("txt_Anlegen", "img_Anlegen")).Visible = True Then
'Kunde anlegen
'Zeile hinzufügen
tbl.ListRows.Add
'Zeile in Variable speichern
Zeile = tbl.DataBodyRange.Rows.Count

'Kunde bearbeiten
Else
Zeile = Range("Tabelle1[Property_ID]").Find(What:=tb_Eingabeformular.Range("C13").Value _
, LookIn:=xlValues, LookAt:=xlWhole).Row - tbl.HeaderRowRange.Row
End If
'Datenbank befüllen
With tb_Eingabeformular
tbl.DataBodyRange(Zeile, 1).Value = .Range("C13").Value
tbl.DataBodyRange(Zeile, 2).Value = .Range("C15").Value
tbl.DataBodyRange(Zeile, 3).Value = .Range("C17").Value
tbl.DataBodyRange(Zeile, 4).Value = .Range("C19").Value
tbl.DataBodyRange(Zeile, 5).Value = .Range("C21").Value
tbl.DataBodyRange(Zeile, 6).Value = .Range("C23").Value
tbl.DataBodyRange(Zeile, 7).Value = .Range("C25").Value
tbl.DataBodyRange(Zeile, 8).Value = .Range("C27").Value
tbl.DataBodyRange(Zeile, 9).Value = .Range("C29").Value
tbl.DataBodyRange(Zeile, 10).Value = .Range("C38").Value
tbl.DataBodyRange(Zeile, 11).Value = .Range("C40").Value
tbl.DataBodyRange(Zeile, 12).Value = .Range("C42").Value
tbl.DataBodyRange(Zeile, 13).Value = .Range("C44").Value
tbl.DataBodyRange(Zeile, 14).Value = .Range("C46").Value
tbl.DataBodyRange(Zeile, 15).Value = .Range("C48").Value
tbl.DataBodyRange(Zeile, 16).Value = .Range("F13").Value
tbl.DataBodyRange(Zeile, 17).Value = .Range("F15").Value
tbl.DataBodyRange(Zeile, 18).Value = .Range("F17").Value
tbl.DataBodyRange(Zeile, 19).Value = .Range("F19").Value
tbl.DataBodyRange(Zeile, 20).Value = .Range("F21").Value
tbl.DataBodyRange(Zeile, 21).Value = .Range("F23").Value
tbl.DataBodyRange(Zeile, 22).Value = .Range("F25").Value
tbl.DataBodyRange(Zeile, 23).Value = .Range("F27").Value
tbl.DataBodyRange(Zeile, 24).Value = .Range("F29").Value
tbl.DataBodyRange(Zeile, 25).Value = .Range("F31").Value
tbl.DataBodyRange(Zeile, 26).Value = .Range("F33").Value
tbl.DataBodyRange(Zeile, 27).Value = .Range("F38").Value
tbl.DataBodyRange(Zeile, 28).Value = .Range("F40").Value
tbl.DataBodyRange(Zeile, 29).Value = .Range("I13").Value
tbl.DataBodyRange(Zeile, 30).Value = .Range("I15").Value
tbl.DataBodyRange(Zeile, 31).Value = .Range("I17").Value
tbl.DataBodyRange(Zeile, 32).Value = .Range("I19").Value
tbl.DataBodyRange(Zeile, 33).Value = .Range("I21").Value
tbl.DataBodyRange(Zeile, 34).Value = .Range("I23").Value
tbl.DataBodyRange(Zeile, 35).Value = .Range("I25").Value
tbl.DataBodyRange(Zeile, 36).Value = .Range("I27").Value
tbl.DataBodyRange(Zeile, 37).Value = .Range("I29").Value
tbl.DataBodyRange(Zeile, 38).Value = .Range("I31").Value
tbl.DataBodyRange(Zeile, 39).Value = .Range("I33").Value
tbl.DataBodyRange(Zeile, 40).Value = .Range("L13").Value
tbl.DataBodyRange(Zeile, 41).Value = .Range("L15").Value
tbl.DataBodyRange(Zeile, 42).Value = .Range("L17").Value
tbl.DataBodyRange(Zeile, 43).Value = .Range("L19").Value
tbl.DataBodyRange(Zeile, 44).Value = .Range("L21").Value
tbl.DataBodyRange(Zeile, 45).Value = .Range("L23").Value
tbl.DataBodyRange(Zeile, 46).Value = .Range("L25").Value
tbl.DataBodyRange(Zeile, 47).Value = .Range("L27").Value
tbl.DataBodyRange(Zeile, 48).Value = .Range("L29").Value
tbl.DataBodyRange(Zeile, 49).Value = .Range("L31").Value
tbl.DataBodyRange(Zeile, 50).Value = .Range("L33").Value
tbl.DataBodyRange(Zeile, 51).Value = .Range("L35").Value
tbl.DataBodyRange(Zeile, 52).Value = Date
End With
'Navigieren zu Tabellenblatt Datenbank
tb_Datenbank.Select
ActiveWindow.ScrollRow = tbl.DataBodyRange(Zeile, 1).Row
tbl.DataBodyRange(Zeile, 1).Select
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbank Wert wird nicht übernommen
12.02.2023 17:42:45
onur
Wie du schon selber schreibst: "Hierzu habe ich mir einen Code erstellt". Also maßgeschneidert auf deine Datei. Wie also sollen wir deinen Code überprüfen, wenn wir deine Datei nicht haben?
AW: Datenbank Wert wird nicht übernommen
12.02.2023 18:36:15
Samdra
Hallo, danke für deine Antwort, aber der Code steht doch drinnen. Alle anderen Makros funktionieren, nur dieser nicht.
AW: Datenbank Wert wird nicht übernommen
12.02.2023 19:10:38
JoWE
Was ergibt denn
tb_Eingabeformular.Range("C13").Value ?
AW: Datenbank Wert wird nicht übernommen
12.02.2023 19:15:22
Samdra
Hallo, das ist der erste Wert/Text im Eingabefeld.
AW: Datenbank Wert wird nicht übernommen
12.02.2023 19:18:17
Samdra
Das ist der ganze Code. Auf dem ersten Tabellenblatt = Datenbank, auf dem zweiten Tabellenblatt =Eingabeformular
Sub KundenLoeschen()
'Abfrage, ob Kunde wirklich gelöscht werden soll?
Dim Antwort
Antwort = MsgBox("Soll das Asset wirklich gelöscht werden?", vbYesNo + vbQuestion, "Asset wirklich löschen?")
If Antwort = vbYes Then ActiveCell.EntireRow.Delete
End Sub
Sub KundenChange_EingabeDB()
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = tb_Datenbank.ListObjects(1)
Dim Zeile As Long
'Kunden anlegen oder bearbeiten?
 If tb_Eingabeformular.Shapes.Range(Array("txt_Anlegen", "img_Anlegen")).Visible = True Then
 'Kunde anlegen
    'Zeile hinzufügen
    tbl.ListRows.Add
    'Zeile in Variable speichern
    Zeile = tbl.DataBodyRange.Rows.Count
    
'Kunde bearbeiten
Else
Zeile = Range("Tabelle1[Property_ID]").Find(What:=tb_Eingabeformular.Range("C13").Value _
, LookIn:=xlValues, LookAt:=xlWhole).Row - tbl.HeaderRowRange.Row
End If
'Datenbank befüllen
With tb_Eingabeformular
    tbl.DataBodyRange(Zeile, 1).Value = .Range("C13").Value
    tbl.DataBodyRange(Zeile, 2).Value = .Range("C15").Value
    tbl.DataBodyRange(Zeile, 3).Value = .Range("C17").Value
    tbl.DataBodyRange(Zeile, 4).Value = .Range("C19").Value
    tbl.DataBodyRange(Zeile, 5).Value = .Range("C21").Value
    tbl.DataBodyRange(Zeile, 6).Value = .Range("C23").Value
    tbl.DataBodyRange(Zeile, 7).Value = .Range("C25").Value
    tbl.DataBodyRange(Zeile, 8).Value = .Range("C27").Value
    tbl.DataBodyRange(Zeile, 9).Value = .Range("C29").Value
    tbl.DataBodyRange(Zeile, 10).Value = .Range("C38").Value
    tbl.DataBodyRange(Zeile, 11).Value = .Range("C40").Value
    tbl.DataBodyRange(Zeile, 12).Value = .Range("C42").Value
    tbl.DataBodyRange(Zeile, 13).Value = .Range("C44").Value
    tbl.DataBodyRange(Zeile, 14).Value = .Range("C46").Value
    tbl.DataBodyRange(Zeile, 15).Value = .Range("C48").Value
    tbl.DataBodyRange(Zeile, 16).Value = .Range("F13").Value
    tbl.DataBodyRange(Zeile, 17).Value = .Range("F15").Value
    tbl.DataBodyRange(Zeile, 18).Value = .Range("F17").Value
    tbl.DataBodyRange(Zeile, 19).Value = .Range("F19").Value
    tbl.DataBodyRange(Zeile, 20).Value = .Range("F21").Value
    tbl.DataBodyRange(Zeile, 21).Value = .Range("F23").Value
    tbl.DataBodyRange(Zeile, 22).Value = .Range("F25").Value
    tbl.DataBodyRange(Zeile, 23).Value = .Range("F27").Value
    tbl.DataBodyRange(Zeile, 24).Value = .Range("F29").Value
    tbl.DataBodyRange(Zeile, 25).Value = .Range("F31").Value
    tbl.DataBodyRange(Zeile, 26).Value = .Range("F33").Value
    tbl.DataBodyRange(Zeile, 27).Value = .Range("F38").Value
    tbl.DataBodyRange(Zeile, 28).Value = .Range("F40").Value
    tbl.DataBodyRange(Zeile, 29).Value = .Range("I13").Value
    tbl.DataBodyRange(Zeile, 30).Value = .Range("I15").Value
    tbl.DataBodyRange(Zeile, 31).Value = .Range("I17").Value
    tbl.DataBodyRange(Zeile, 32).Value = .Range("I19").Value
    tbl.DataBodyRange(Zeile, 33).Value = .Range("I21").Value
    tbl.DataBodyRange(Zeile, 34).Value = .Range("I23").Value
    tbl.DataBodyRange(Zeile, 35).Value = .Range("I25").Value
    tbl.DataBodyRange(Zeile, 36).Value = .Range("I27").Value
    tbl.DataBodyRange(Zeile, 37).Value = .Range("I29").Value
    tbl.DataBodyRange(Zeile, 38).Value = .Range("I31").Value
    tbl.DataBodyRange(Zeile, 39).Value = .Range("I33").Value
    tbl.DataBodyRange(Zeile, 40).Value = .Range("L13").Value
    tbl.DataBodyRange(Zeile, 41).Value = .Range("L15").Value
    tbl.DataBodyRange(Zeile, 42).Value = .Range("L17").Value
    tbl.DataBodyRange(Zeile, 43).Value = .Range("L19").Value
    tbl.DataBodyRange(Zeile, 44).Value = .Range("L21").Value
    tbl.DataBodyRange(Zeile, 45).Value = .Range("L23").Value
    tbl.DataBodyRange(Zeile, 46).Value = .Range("L25").Value
    tbl.DataBodyRange(Zeile, 47).Value = .Range("L27").Value
    tbl.DataBodyRange(Zeile, 48).Value = .Range("L29").Value
    tbl.DataBodyRange(Zeile, 49).Value = .Range("L31").Value
    tbl.DataBodyRange(Zeile, 50).Value = .Range("L33").Value
    tbl.DataBodyRange(Zeile, 51).Value = .Range("L35").Value
    tbl.DataBodyRange(Zeile, 52).Value = Date
End With
'Navigieren zu Tabellenblatt Datenbank
tb_Datenbank.Select
ActiveWindow.ScrollRow = tbl.DataBodyRange(Zeile, 1).Row
tbl.DataBodyRange(Zeile, 1).Select
End Sub
Sub KundenAnlegen_DBEingabe()
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = tb_Datenbank.ListObjects(1)
With tb_Eingabeformular
    'Spalten leeren
    .Columns("C").ClearContents
    .Columns("F").ClearContents
    .Columns("I").ClearContents
    .Columns("L").ClearContents
    
    'Property-ID einfügen
    .Range("C15").Value = tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 3)
    
    'Navigieren auf das Eingabeformular
    .Shapes.Range(Array("txt_Anlegen", "img_Anlegen")).Visible = True
    .Shapes.Range(Array("txt_Bearbeiten", "img_Bearbeiten")).Visible = False
    .Select
    
    'Zelle auswählen
    .Range("C13").Select
   
End With
End Sub
Sub KundenBearbeiten_DBEingabe()
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = tb_Datenbank.ListObjects(1)
Dim Zeile As Long
Zeile = ActiveCell.Row - tbl.HeaderRowRange.Row
With tb_Eingabeformular
    'Spalten leeren
    .Columns("C").ClearContents
    .Columns("F").ClearContents
    .Columns("I").ClearContents
    .Columns("L").ClearContents
    
    'Eingabeformular befüllen
    .Range("C13").Value = tbl.DataBodyRange(Zeile, 1).Value
    .Range("C15").Value = tbl.DataBodyRange(Zeile, 2).Value
    .Range("C17").Value = tbl.DataBodyRange(Zeile, 3).Value
    .Range("C19").Value = tbl.DataBodyRange(Zeile, 4).Value
    .Range("C21").Value = tbl.DataBodyRange(Zeile, 5).Value
    .Range("C23").Value = tbl.DataBodyRange(Zeile, 6).Value
    .Range("C25").Value = tbl.DataBodyRange(Zeile, 7).Value
    .Range("C27").Value = tbl.DataBodyRange(Zeile, 8).Value
    .Range("C29").Value = tbl.DataBodyRange(Zeile, 9).Value
    .Range("C38").Value = tbl.DataBodyRange(Zeile, 10).Value
    .Range("C40").Value = tbl.DataBodyRange(Zeile, 11).Value
    .Range("C42").Value = tbl.DataBodyRange(Zeile, 12).Value
    .Range("C44").Value = tbl.DataBodyRange(Zeile, 13).Value
    .Range("C46").Value = tbl.DataBodyRange(Zeile, 14).Value
    .Range("C48").Value = tbl.DataBodyRange(Zeile, 15).Value
    .Range("F13").Value = tbl.DataBodyRange(Zeile, 16).Value
    .Range("F15").Value = tbl.DataBodyRange(Zeile, 17).Value
    .Range("F17").Value = tbl.DataBodyRange(Zeile, 18).Value
    .Range("F19").Value = tbl.DataBodyRange(Zeile, 19).Value
    .Range("F21").Value = tbl.DataBodyRange(Zeile, 20).Value
    .Range("F23").Value = tbl.DataBodyRange(Zeile, 21).Value
    .Range("F25").Value = tbl.DataBodyRange(Zeile, 22).Value
    .Range("F27").Value = tbl.DataBodyRange(Zeile, 23).Value
    .Range("F29").Value = tbl.DataBodyRange(Zeile, 24).Value
    .Range("F31").Value = tbl.DataBodyRange(Zeile, 25).Value
    .Range("F33").Value = tbl.DataBodyRange(Zeile, 26).Value
    .Range("F38").Value = tbl.DataBodyRange(Zeile, 27).Value
    .Range("F40").Value = tbl.DataBodyRange(Zeile, 28).Value
    .Range("I13").Value = tbl.DataBodyRange(Zeile, 29).Value
    .Range("I15").Value = tbl.DataBodyRange(Zeile, 30).Value
    .Range("I17").Value = tbl.DataBodyRange(Zeile, 31).Value
    .Range("I19").Value = tbl.DataBodyRange(Zeile, 32).Value
    .Range("I21").Value = tbl.DataBodyRange(Zeile, 33).Value
    .Range("I23").Value = tbl.DataBodyRange(Zeile, 34).Value
    .Range("I25").Value = tbl.DataBodyRange(Zeile, 35).Value
    .Range("I27").Value = tbl.DataBodyRange(Zeile, 36).Value
    .Range("I29").Value = tbl.DataBodyRange(Zeile, 37).Value
    .Range("I31").Value = tbl.DataBodyRange(Zeile, 38).Value
    .Range("I33").Value = tbl.DataBodyRange(Zeile, 39).Value
    .Range("L13").Value = tbl.DataBodyRange(Zeile, 40).Value
    .Range("L15").Value = tbl.DataBodyRange(Zeile, 41).Value
    .Range("L17").Value = tbl.DataBodyRange(Zeile, 42).Value
    .Range("L19").Value = tbl.DataBodyRange(Zeile, 43).Value
    .Range("L21").Value = tbl.DataBodyRange(Zeile, 44).Value
    .Range("L23").Value = tbl.DataBodyRange(Zeile, 45).Value
    .Range("L25").Value = tbl.DataBodyRange(Zeile, 46).Value
    .Range("L27").Value = tbl.DataBodyRange(Zeile, 47).Value
    .Range("L29").Value = tbl.DataBodyRange(Zeile, 48).Value
    .Range("L31").Value = tbl.DataBodyRange(Zeile, 49).Value
    .Range("L33").Value = tbl.DataBodyRange(Zeile, 50).Value
    .Range("L35").Value = tbl.DataBodyRange(Zeile, 51).Value
               
    'Navigieren auf das Eingabeformular
    .Shapes.Range(Array("txt_Anlegen", "img_Anlegen")).Visible = False
    .Shapes.Range(Array("txt_Bearbeiten", "img_Bearbeiten")).Visible = True
    .Select
    
    'Zelle auswählen
    .Range("C13").Select
   
End With
End Sub

Anzeige
AW: Datenbank Wert wird nicht übernommen
12.02.2023 19:28:42
JoWE
Die Antwort auf die Frage steht noch aus.
Gefragt habe ich nach dem Ergebnis.
AW: Datenbank Wert wird nicht übernommen
12.02.2023 19:46:19
Samdra
Ich habe in der Datenbank einen Kunden ausgewählt mit der Kundennummer "Test". Dann drücke ich mein Makro und will den Eintrag in meinem Eingabeformular ändern. In der Zelle C13 steht Test. D.h er bezieht sich immer auf die KD-Nr. Diese Kundennummer wird dann geändert im Eingabefeld und soll anschließend gespeichert werden.
AW: Datenbank Wert wird nicht übernommen
12.02.2023 19:59:21
Samdra
Hi, ich habe dir geantwortet. Reicht mein Ergebnis? Sei nicht böse, ist mein erstes Tool und ich habe noch sehr wenig Erfahrung. Wäre echt lieb von Dir, wenn du dran bleiben könntest. Leider darf ich die Datei nicht hochladen. Diese ist auf meinem PC von meiner Arbeit und da ist das strengstens verboten.
Anzeige
AW: Datenbank Wert wird nicht übernommen
12.02.2023 20:23:12
JoWE
hmm, wenn in C13 tatsächlich "Test" steht und nicht
etwa noch irgendwo ein zusätzliches Leerzeichen, dann hab'
ich erst mal keine Idee. Versuch aber mal das "LookAt:=xlWhole" gegen "LookAt:=xlPart" zu tauschen.
Ansonsten ist das ohne die Arbeitsmappe echt aussichtslos.
Vllt. Kannst Du da doch etwas anonymisieren und verkürzen?
Gruß
Jochen
AW: Datenbank Wert wird nicht übernommen
12.02.2023 20:39:41
JoWE
Und in der "Tabelle1[Property_ID]" gibt's auch den Begriff "Test"?
Wäre die nächste Feage
AW: Datenbank Wert wird nicht übernommen
13.02.2023 06:44:06
Sandra
Hallo Jochen,
Ich werde heute Abend den Code auf meinem Rechner schreiben und die Tabelle dazu. Dann kann ich es hochladen. Leider darf es nicht vom der Arbeit aus. Es gibt halt immer Leute die blöde Kommentare schreiben aber die ignoriere ich einfach. Kennst du jemanden der Coaching macht? Lg Sandra
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige