Benutzer mit den meisten Antworten
Microsoft Visual Express 2012 mit Access Datenbank Darstellungs-, und ComboBox Probleme

Frage
-
Hallo zusammen,
zum dem Darstellungsproblem:
Ich habe ein Visual Basic Programm programmiert und dieses Programm soll Kommazahlen in eine Datenbank schreiben. Leider funktioniert dies nicht. Die Zahlen werden nur gerundet und dann in der Datenbank angezeigt. Welche Einstellungen muss ich sowhol im Programm als auch in der Datenbank vornehmen damit die Kommazahlen angezeigt werden? Die Variabeln werden als Double dklariert.
zu dem ComboBox Problem:
Ich habe eine ComboBox die Daten aus der Access Datenbank hat (Mitarbeitername). Nun möchte ich die Daten nach dem Benutzernamen laden und habe mir folgenden Code zurecht geschrieben. Bei dem Unterprogramm Daten1 wird nach dem Mitarbeiternamen gefiltert und dann der Username geladen. In dem zweiten Unterprogramm wird dann der Username benutzt um die restlichen Daten zu laden. Es funktioniert auch alles einwandfrei. Leider wird aber die ComboBox nach der ersten Klicken auf einen Namen geleert. Woran kann dies liegen ?
Public Sub Daten1() 'Überprüfen ob Mitarbeitername vorhanden ist und laden des Usernamens Dim MA_Name_t As String MA_Name_t = ComboBox1.Text Try Login1TableAdapter1.FillByMitarbeitername(Mitarbeiter1.Login1, MA_Name_t.ToUpper()) Dim check = Mitarbeiter1.Login1.Count = 1 If (check) Then ' Mitarbeiter ist vorhanden UserName_t = Mitarbeiter1.Login1.First.Username 'Trace.WriteLine(mitarbeiterName) 'MessageBox.Show("1. " & UserName_t) Else ' Mitarbeiter ist nicht vorhanden und Anwendung beenden MessageBox.Show("Mitarbeitername konnte nicht in Usernamen umgewandelt werden!") Exit Sub End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub Daten2() 'Laden der Daten vom Usernamen Try LoginTableAdapter1.FillByUsername(Mitarbeiter1.Login, UserName_t.ToUpper()) Dim check = Mitarbeiter1.Login.Count = 1 If (check) Then ' Mitarbeiter ist vorhanden TextBox1.Text = Mitarbeiter1.Login.First.Mitarbeitername TextBox2.Text = Mitarbeiter1.Login.First.Username TextBox3.Text = Mitarbeiter1.Login.First.Passwort recht1 = Mitarbeiter1.Login.First.Tätigkeitsnachweis recht2 = Mitarbeiter1.Login.First.Benutzerverwaltung recht3 = Mitarbeiter1.Login.First.Auswertung recht4 = Mitarbeiter1.Login.First.Arbeitszeiten_eintragen recht5 = Mitarbeiter1.Login.First.Qualitätsbeurteilung recht6 = Mitarbeiter1.Login.First.Eigene_Einstellungen gesperrt_t = Mitarbeiter1.Login.First.Gesperrt 'Trace.WriteLine(mitarbeiterName) 'MessageBox.Show("1. " & TextBox1.Text & " 2. " & TextBox2.Text & " 3. " & TextBox3.Text & " 4. " & recht1 & " 5. " & recht2 & " 6. " & recht3 & " 7. " & recht4 & " 8. " & recht5 & " 9. " & recht6 & " 10. " & gesperrt_t) Else ' Mitarbeiter ist nicht vorhanden und Anwendung beenden MessageBox.Show("Mitarbeiter Daten sind nicht vorhanden!") Exit Sub End If Catch ex As Exception MessageBox.Show(ex.Message) End Try If recht1 = "True" Then CheckBox1.Checked = True End If If recht2 = "True" Then CheckBox2.Checked = True End If If recht3 = "True" Then CheckBox3.Checked = True End If If recht4 = "True" Then CheckBox4.Checked = True End If If recht5 = "True" Then CheckBox5.Checked = True End If If recht6 = "True" Then CheckBox6.Checked = True End If If gesperrt_t = "True" Then CheckBox7.Checked = True End If End Sub Private Sub ComboBox1_TextChanged(sender As Object, e As EventArgs) Handles ComboBox1.TextChanged Daten1() Daten2() End Sub
Gruß,
Manuel
Antworten
-
Du bindest die ComboBox an deine Login-Tabelle. Beim Initialisieren werden ALLE Mitarbeiter geladen, daher siehst du auch alle Daten angezeigt.
Nachdem du einen Mitarbeiter auswählst, wird vermutlich deine Methode Daten1() aufgerufen welche wiederum
Login1TableAdapter1.FillByMitarbeitername(Mitarbeiter1.Login1, MA_Name_t.ToUpper())
aufruft. In der Tabelle Login ist jetzt NUR noch der ausgewählte Mitarbeiter zu sehen weil du nur nach diesem filterst. Durch die Datenbindung ist das natürlich sofort in der ComboBox sichtbar.
- Als Antwort markiert _-Manuel-_ Dienstag, 14. Juli 2015 14:41
Alle Antworten
-
Hallo Manuel,
zu deinem Darstellungsproblem:
Welche Datentyp wird in der Datenbank verwendet und welches DBS verwendest du?zu deinem ComboBox_Problem:
Hier postest du Code der Funktioniert und der mit der ComboBox nichts zu tun hat. Zeig doch bitte mal die Codestellen, an denen du die ComboBox füllst.Ah, btw. solltest du deine Variablen typisieren. Das machst du zum Beispiel bei "Dim check = ..." nicht.
Viele Grüße Holger M. Rößler
-
Hallo Holger,
zum Darstellungsproblem:
Die Datenbank ist eine .mdb Datei (leider schon etwas älter). Und in den jeweiligen Spalten werden die Daten mit der Feldgröße : Double deklariert. Dezimalstellenanzeige ist auf 1.
Ich habe nun nochmal getestet und habe festgestellt das die Kommazahl nicht in der Datenbank ankommt. Es liegt also an der Übertragung. Ich füge die Daten der Datenbank mit einem TableAdapter über Insert zu und die Variabeln sind als Double deklariert? Habe ich etwas falsch eingestellt oder vergessen?
Das Problem war die Übertragung. Der TableAdapter war nicht auf dem aktuellsten Stand. Zusätzlich waren die Variabeln als Integer übetragen worden. Problem ist nun gelöst.
zu dem Problem mit der ComboBox:
Ich habe die Combox mit dem Generator gefüllt. Wenn ich nun allerdings einen Mitarbeiternamen auswähle und dann denn Programmcode ausführe durch klicken auf den Button, wird nur noch der ausgewählte Mitarbeitername angezeigt in der ComboBox als Auswahl.
Hoffe das hilft weiter. Ok mit dem Variabeln Typisieren werde ich nochmal vornehmen.
Gruß,
Manuel
- Bearbeitet _-Manuel-_ Montag, 13. Juli 2015 12:10 Darstellungsproblem gelöst
-
Du bindest die ComboBox an deine Login-Tabelle. Beim Initialisieren werden ALLE Mitarbeiter geladen, daher siehst du auch alle Daten angezeigt.
Nachdem du einen Mitarbeiter auswählst, wird vermutlich deine Methode Daten1() aufgerufen welche wiederum
Login1TableAdapter1.FillByMitarbeitername(Mitarbeiter1.Login1, MA_Name_t.ToUpper())
aufruft. In der Tabelle Login ist jetzt NUR noch der ausgewählte Mitarbeiter zu sehen weil du nur nach diesem filterst. Durch die Datenbindung ist das natürlich sofort in der ComboBox sichtbar.
- Als Antwort markiert _-Manuel-_ Dienstag, 14. Juli 2015 14:41