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:
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:
Ich hoff das is ned zu kompliziert und freu mich ueber jeden Hinweis, lg Ilona
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