Anzeige
Archiv - Navigation
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage zu Datenbank

Frage zu Datenbank
23.09.2006 21:49:40
Martin
Guten Abend allerseits,
ich brauche eure Hilfe denn ich komme alleine nicht weiter. Ich habe eine UF erstellt mit vielen Feldern. Über ein DropDownBox kann man ein Zimmer auswählen. Wenn man Ok klickt wird das Ganze in eine Tabelle ("Eingaben") eingeschrieben. An sich kein Problem aber....
Ich möchte, wenn Zi 1 ausgewählt wurde, dass die Angaben in Zeile 1 der Tabelle ("Eingaben") eingetragen werden.
Bei Zi 2, Zeile 2 usw.
Sollte man später wieder eines der Zimmern auswählen, werden die Eingaben in der entsprechenden Zeile überschrieben.
Wie sähe die Programmierung in diesem Falle aus?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zu Datenbank
23.09.2006 21:54:38
{Boris}
Hi Martin,
greif doch auf den ListIndex der Combobox zurück. Damit kannst du dann die Zeile bestimmen. Der Index beginnt bei Null - also wenn Zi 1 der erste Eintrag ist, dann referenzierst du mit:
Cells(Me.ComboBox1.Listindex + 1, Spalte) = ...
die Zeile 1 im Tabellenblatt. Analog für Zi 2 etc...
Grüße Boris
AW: Frage zu Datenbank
23.09.2006 22:08:33
Martin
Hallo Boris,
vielen Dank für deine prompte Antwort. Leider bin ich irgendwo zwischen Laie und vorgeschrittene Laie auf diesem Gebiet. Ich verstehe nicht ganz worauf du hinaus willst. Mein Code (Dank des Forums) sieht z.Zt. so aus:

Private Sub CommandButton2_Click() 'Alle Felder löschen
Dim tb As Object
For Each tb In UserForm1.Controls
If TypeName(tb) = "TextBox" Then tb.Text = ""
Next tb
End Sub


Private Sub CommandButton3_Click() 'Abbrechen
UserForm1.Hide
End Sub


Private Sub DatenSpeichern_Click() 'Eingaben Speichern
Application.ScreenUpdating = False
Sheets("PersDaten").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("Main").Select
Range("A1").Select
ActiveWorkbook.Sheets("Eingaben").Activate
Range("A1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = TextBox1.Value
ActiveCell.Offset(0, 1) = TextBox1.Value
ActiveCell.Offset(0, 2) = TextBox2.Value
ActiveCell.Offset(0, 3) = ComboBox1.Value
ActiveCell.Offset(0, 4) = TextBox8.Value
ActiveCell.Offset(0, 5) = TextBox4.Value
ActiveCell.Offset(0, 6) = TextBox5.Value
ActiveCell.Offset(0, 7) = TextBox7.Value
ActiveCell.Offset(0, 9) = TextBox9.Value
ActiveCell.Offset(0, 10) = TextBox10.Value
ActiveCell.Offset(0, 11) = ComboBox1.Value
ActiveCell.Offset(0, 12) = OptionButton1.Value
Range("A1").Select
TextBox1.SetFocus
Calculate
UserForm1.Hide
Sheets("Main").Select
Application.ScreenUpdating = True
End Sub


Private Sub UserForm_Initialize()
TextBox1.Value = Sheets("Daten").Range("E10")
TextBox2.Value = Sheets("Daten").Range("J10")
With ComboBox1
.AddItem "Zimmer 1"
.AddItem "Zimmer 2"
.AddItem "Zimmer 5"
.AddItem "Zimmer 6"
.AddItem "Zimmer 7"
.AddItem "Zimmer 8"
.AddItem "Zimmer 12"
.AddItem "Zimmer 14"
.AddItem "Zimmer 20"
End With
TextBox8.Value = Sheets("Daten").Range("E36").Text
TextBox4.Value = Sheets("Daten").Range("K14")
TextBox5.Value = Sheets("Daten").Range("J12")
TextBox7.Value = Sheets("Daten").Range("G31").Text
TextBox9.Value = Sheets("Daten").Range("F20").Text
TextBox10.Value = Sheets("Daten").Range("H20").Text
End With
ComboBox1.Value = Sheets("Daten").Range("E12")
OptionButton1.Value = Sheets("PersDaten").Range("M1")
OptionButton2.Value = Sheets("PersDaten").Range("N1")
TextBox1.SetFocus
End Sub

Wie du als Profi sicherlich sehen kannst, werden die Eingaben in die Tabelle ("Eingaben") eingeschrieben, eine nach der andere. Ich möchte erreichen, dass es nur so viele Eingaben gibt wie Zimmern. Wenn über die UF was neues eingegebn wird, sollte die Eingabe für den jeweiligen Zimmer aktualisiert werden. Soll so etwas wie ein Hotel-register werden. Hoffe du kannst helfen
Anzeige
Comboboxwerte in Tabelle schreiben
23.09.2006 23:05:14
Herby
Hallo Martin,
der Vorschlag von Boris (gute Idee) funktioniert nur dann, wenn die Werte für die einzelnen Zimmer (=datensätze) immer die gleiche Zeile und ggf. auch die gleiche Spalte haben. Du frägst mit dem Code:
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
jedoch ab ob die Zeile leer ist und wenn nicht nimmst du die nächste. Dh. dein Aufbau ist derzeit bezüglich der Zimmer dynamisch ?
Ist das so gewollt ?
Wenns ein starrer Aufbau ist, dann ist es einfacher von der Programmierung, denn dann kann man die Werte der Textboxen und der Combobox direkt einer bestimmten Zelle zuordnen wie z.B. über den Listindex der Combobox.
worksheets("Daten").cells(Me.ComboBox1.Listindex+1,4) = ComboBox1.Value
Viele Grüße
Herby
Anzeige
AW: Frage zu Datenbank
23.09.2006 21:59:33
chris
Hilft dir das weiter ?
Dim x As Integer

Private Sub ok_Click()
x = Right(ComboBox1.Value, 1)
Worksheets("Eingaben").Cells(x, 1) = TextBox1.Value
End Sub


Private Sub TextBox1_Change()
End Sub


Private Sub UserForm_Initialize()
For x = 1 To 5
ComboBox1.AddItem "Zi" & x
Next
End Sub

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige