Daten aus MySql-DB auslesen

Ilona85

Mitglied
Schoenen guten Abend! Ich hab wieder einmal ein Problem, mit dem ich schon seit einigen Tagen nicht mehr weiter komm, waer schoen, wenn mir da wer weiterhelfen koennte.Ich bin grad dabei eine neue Datebank fuer eine Bibliothek zu entwerfen, dabei verwende ich eine MySql DB und Visual Basic. Ich hab nun schon einige Forms zum eintragen neuer Buecher, Loeschen von Eintraegen, Suchen, ... In die Mysql tabelle trage ich verschiedenste Daten ein wie die reg.nr, den Autor, den Titel, Edition, etc. Nun hab ich das Problem, dass es bei "Autor" 3 verschiedene Moeglichkeiten gibt, der kann entweder Individuell, institutionell oder conventional sein. Dazu hab ich anstatt des Textfeldes erstmal eine Combobox eingefuegt, um auswaehlen zu koennen, welche Art von Autor denn nun eingetragen werden soll. Je nachdem, was dann ausgewaehlt wird hab ich 3 Textboxen uebereinandergelegt, und jeweils die zutreffende wird sichtbar, die beiden anderen unsichtbar, und fuer den jeweils nichtvorhandenen Eintrag wird in der SQL - Tabelle ein Leereintrag gemacht.

Das haut so weit hin, wenn ich aber nun dieselbe DB oefnnen moechte dann werden mir zwar alle Buecher angezeigt, aber bei jenen, bei denen der Autor nicht individuell ist, wird mir als Autor nichts angezeigt. Im Folgenden fueg ich mal den Code zum Eintragen eines neuen Buches ein:
Code:
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub cmdCancel2_Click()
	Unload frmBook
	frmBook.Hide
End Sub

Private Sub Combo1_Click()
 
		If Combo1.Text = "Autor individual" Then
			Text3.Visible = True
			Combo1.Visible = False
			Label8.Visible = True
			Label9.Visible = False
			Label10.Visible = False
			Label3.Visible = False
		ElseIf Combo1.Text = "Autor institucional" Then
			Text4.Visible = True
			Combo1.Visible = False
			Label9.Visible = True
			Label3.Visible = False
			Label8.Visible = False
			Label10.Visible = False
		ElseIf Combo1.Text = "Autor colectiva" Then
			Text5.Visible = True
			Combo1.Visible = False
			Label10.Visible = True
			Label3.Visible = False
			Label8.Visible = False
			Label9.Visible = False
		End If
 
End Sub

Private Sub Command1_Click()
	If Combo1.Text = "Autor individual" Then
		Text3.Visible = True
		Text4.Visible = False
		Text5.Visible = False
		Text4.Text = ""
		Text5.Text = ""
	ElseIf Combo1.Text = "Autor institucional" Then
		Text4.Visible = True
		Text3.Visible = False
		Text5.Visible = False
		Text3.Text = ""
		Text5.Text = ""
	ElseIf Combo1.Text = "Autor colectiva" Then
		Text5.Visible = True
		Text3.Visible = False
		Text4.Visible = False
		Text3.Text = ""
		Text4.Text = ""
	End If
 
	On Error GoTo Errhandler
		conn.Execute "Insert into buch (reg_num, lib_tit, lib_autind, lib_autins, lib_autcol, lib_cla, lib_noti, lib_edi, lib_lugpb) values ('" & Text1.Text & "', '" & Text2.Text & "', '" & Text3.Text & "', '" & Text4.Text & " ', '" & Text5.Text & " ', '" & Text6.Text & " ', '" & Text7.Text & " ', '" & Text8.Text & "', '" & Text9.Text & " ')"
		If Not Text1.Text Then
			MsgBox "Entrar los datos estaba exitosa!", vbInformation, "Mensaje del Sistema"
		Else
			MsgBox "keine daten eingetragen"
		End If
	Exit Sub
Errhandler:
	MsgBox "Ha occurado un error grave", vbInformation, "Mensaje del Sistema"
End Sub
Private Sub Command2_Click()
	Unload frmBook
	frmBook.Hide
End Sub
 
Private Sub Form_Initialize()
	'Verbindung herstellen
	Set conn = New ADODB.Connection
	conn.CursorLocation = adUseClient
	conn.ConnectionString = "DRIVER=MySQL ODBC 3.51 Driver;" _
		 & "SERVER=10.0.5.31;" _
		 & "DATABASE=probe;" _
		 & "UID=root;" _
		 & "PWD= "
	'Verbindung oeffnen
	conn.Open
	'Recordset erstellen
	Set rs = New ADODB.Recordset
 
	'Textboxen fuer Datenerhalt vorbereiten
	Set Text1.DataSource = rs
	Set Text2.DataSource = rs
	Set Text3.DataSource = rs
	Set Text4.DataSource = rs
	Set Text5.DataSource = rs
	Set Text6.DataSource = rs
	Set Text7.DataSource = rs
	Set Text8.DataSource = rs
	Set Text9.DataSource = rs
 
	Text1.DataField = "reg_num"
	Text2.DataField = "lib_tit"
	Text3.DataField = "lib_autind"
	Text4.DataField = "lib_autins"
	Text5.DataField = "lib_autcol"
	Text6.DataField = "lib_cla"
	Text7.DataField = "lib_noti"
	Text8.DataField = "lib_edi"
	Text9.DataField = "lib_lugpb"
End Sub

 
Private Sub Form_Load()
	Combo1.AddItem "Autor individual"
	Combo1.AddItem "Autor institucional"
	Combo1.AddItem "Autor colectiva"
	Combo1.Visible = True
	Text3.Visible = False
	Text4.Visible = False
	Text5.Visible = False
	Label8.Visible = False
	Label9.Visible = False
	Label10.Visible = False
End Sub

Der Code zum anzeigen der eingetragenen Buecher sieht aehnlich aus, nur weiss ich nicht, wie ich die 3 Textboxen fuer die Autoren zu behandeln hab. Ich hab mal versucht, einfach zu pruefen ob Text3.Text (also das Textfeld fuer Autor individual) = "" ist, wenn ja wird Text9.Text (Textfeld fuer Autor institutional sichtbar), wieder die Pruefung ob Text9.Text = "", wenn ja wird Text10 sichtbar (textfeld fuer autor conventionl)..
also so:
Code:
If Text3.Text = "" Then
		Text3.Visible = False
		Text9.Visible = True
		If Text9.Text = "" Then
			Text10.Visible = True
			Text9.Visible = False
		End If
	End If

Ich hoff das is ned zu kompliziert und freu mich ueber jeden Hinweis, lg Ilona
 
Tut mir leid, dass ich unnoetig laestig war, ich wurde wieder mal Opfer meines eigenen komplizierten Denkens.. hat sich schon erledigt.
 
Und wahrscheinlich auch ein Opfer deines unleserlichen Codes ;).

Ich kann dir nur raten für deine Steuerelemente treffendere Namen zu wählen. Das ist beim Schreiben ein wenig aufwendiger, aber hilt unheimlich bei der Fehlersuche oder später bei Erweiterungen, da man den Code viel besser versteht.
 

Neue Beiträge

Zurück