eigentlich brauchst du auch gar nicht so besonders viel code dafür. der grösste teil dabei ist die datenbank.
für den einstieg reicht es, wenn du erstmal access als datenbanksystem nimmst und dir das einsteiger-tutorial über datenbanken und sql von quentin durchliest.
wenn du das komplett durchgelesen hast, legst du eine neue datenbank in C:\test\test.mdb an und erstellst eine tabelle für deine daten mit vier feldern:
- id: autowert, primärschlüssel
- name: text
- email: ja/nein
- land: zahl
die tabelle speicherst du unter dem namen test ab und dann erstellst du noch eine tabelle mit zwei feldern:
- id: zahl, primärschlüssel
- land: text
die zweite tabelle speicherst du als lu_land ab und trägst folgende daten ein:
1 - deutschland
2 - österreich
3 - schweiz
4 - sonstige
jetzt ist die datenbank im prinzip fertig, und der programmierteil fängt an. auf dein formular legst du einfach einen commandbutton (btnSchreiben), eine combobox (cmbLand), eine textbox (txtName) und eine checkbox (chkEmail).
in die ereignisprozeduren der beiden buttons schreibst du dann noch folgenden code:
Code:
Option Explicit
Dim cnData As ADODB.Connection
Private Sub btnSchreiben_Click()
Dim rsTest As ADODB.Recordset
'Neuen Datensatz für die zusammengeklickten Daten anlegen
Set rsTest = New ADODB.Recordset
rsTest.Open "SELECT * FROM test;", cnData, adOpenStatic, adLockPessimistic, -1
If rsTest.RecordCount > 0 Then rsTest.MoveLast
rsTest.AddNew
'Daten in die Tabelle eintragen
rsTest("name") = txtName.Text
rsTest("email") = chkEmail.Value
rsTest("land") = cmbLand.ListIndex + 1
rsTest.Update
rsTest.Close
Set rsTest = Nothing
End Sub
Private Sub Form_Load()
Dim rsLand As ADODB.Recordset
Set cnData = New ADODB.Connection
cnData.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test\test.mdb", "", "", -1
'alle verfügbaren Länder aus der Tabelle in die Combobox laden
Set rsLand = New ADODB.Recordset
rsLand.Open "SELECT * FROM lu_land;", cnData, adOpenStatic, adLockPessimistic, -1
If rsLand.RecordCount > 0 Then
rsLand.MoveFirst
Do While Not rsLand.EOF
cmbLand.AddItem CStr(rsLand("land"))
Loop
End If
rsLand.Close
Set rsLand = Nothing
End Sub
noch zu beachten wäre, dass du einen verweis auf die adodb-libraries (microsoft activex data objects 2.x) setzt. die auswertung kannst du dann später auch mit sql machen, indem du einfach gruppierungen abfragst.
und die autowerte solltest du nachher auch nicht mehr benutzen, weil man damit später probleme haben wird. ich hab das der einfachheit halber mal hier verwendet.