ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
14279
14279
EMPFEHLEN
-
20.12.07 14:44 #1
- Registriert seit
- Nov 2007
- Beiträge
- 93
Hallo und zwar habe ich folgendes Problem. Ich hab gerade angefangen mich mit Visual Basic 2005 und Datenbankprogrammierung zu beschäftigen. Habe mir auch schon ein Buch darüber gekauft und mehr als einmal gegoogelt!! Also, ich habe zwei Access Tabellen und ich möchte in einem Formular Datensätze in eine Tabelle hinzufügen. In meinem Formular steht:
ID eingeben:
Benutzer eingeben: (ComboBox)
Die Access-Tabelle, in die es hinzugefügt werden soll heißt Benutzer hat folgende Werte:
Nr (AutoWert)
ID
Benutzer
In dem vb-Formular gibt es noch einen OK-Button und wenn der gedrückt wird, dann sollten die Werte in der Access Tabelle übernommen werden (der AutoWert Nr sollte automatisch um eins erhöht werden------>im Hintergrund.
Meine Datenbank ist schon eine Datenquelle des Formulars.
Ich weiß einfach nicht wie ich das hinbekommen soll und vor allem weiß ich nicht was für einen Code ich da brauche.
Bitte helft mir, ich bin echt am Verweifeln!!
Liebe Grüße
-
Hi,
Hinter dem Button würde ich versuchen einen Private Sub mit ADO-Code zu hinterlegen, da kannst Du die Tabelle über recordset ansprechen, also in Deinem Fall:
Private Sub btnOK_Click
Dim conn As ADODB.Connection
Dim rst As New ADODB.Recordset
Set conn = CurrentProject.Connection
rst.Open "tbl_Benutzer", conn, adOpenKeyset, adLockOptimistic
rst.Fields(0).Value = forms![Dein Formular]!ID
rst.Fields(1).Value =forms![Dein Formular]!Benutzer
rst.update
rst.Close
Set rst = Nothing
Set conn = Nothing
End Sub
Den AutoWert wird im Hintergrund automatisch hochgesetzt, wenn Du es bei den Feldeigenschaften (Datentyp) für Nr. definiert hast.
Höffentlich, das funktioniert
Grüße aus Braunschweig
-
02.01.08 08:55 #3
- Registriert seit
- Nov 2007
- Beiträge
- 93
Also als erstes danke für die Antwort und ein frohes neues Jahr!! Bin nämlich immernoch nicht weiter...........Ich hab das jetzt mal eingefügt, aber es kommen folgende Fehler:
"ADODB.Connection" wird blau unterstrichen und als nicht definiert gesehen, das gleiche mit "ADODB.Recordset", "CurrentProject.Connection", "adOpenKeyset" und "adLockOptimistic".
Danach kommt ja:
rst.Fields(0).Value = forms![Dein Formular]!ID
Wenn ich da "Form2" (so heißt mein Formular) eingebe, dann geht das auch nicht, dann wird "forms" blau unterstrichen und als nicht definiert gesehen.
Was muss ich jetzt machen Bitte helft mir
-
02.01.08 12:05 #4
Die Lösung von Tarik_BS ist für das einfügen eines Datensatzes aus Access heraus, also per VBA. Da du aber von VB 2005 (VB.NET) sprichst mußt du zuerst deine Tablle als Datenquelle zu deinem Projekt hinzufügen. Dies machst du über Daten->Neue Datenquelle hinzufügen. Da öffnet sich ein Assistent. Dann wählst du aus Datenbank -> Weiter-> Neue Verbindung erstellen. Dann wählst du die DB aus, gibst ggf. Anmeldedaten ein und testen dann die Verbindung. Dann die Tabellen auswählen die du dem Projekt hinzufügen willst. Danach den Assistenten fertig stellen. Hat alles geklappt, sollten eigentlich die Datenquellen angzeigt werden, wenn nicht blende diese ein. Jetzt kannst dir die einzelnen Tabellenfelder einfach per Drag & Drop auf dein Formular ziehen. Mit den DropDown neben den Tabellenspalten kannst du auswählen ob diese als Textbos, Combobox etc. auf der Form dargestellt werden sollen.
Du hast nun ein DataSet, in diesem Daten aus deiner Tabelle gespeichert sind. Über
Kannst du nun auf verschiedene Abfragen zugreifen, entweder vordefinierte oder auf welche die du selbst geschrieben hast. Am eifnachsten kann man Abfragen selber schreiben, indem du auf die *.xsd-Datei in deinem Projektmappen-Explorer gehst. Dort kommst du zu einer grafischen oberfläche, die die Tabellen deines Datsets darstellen. Die Tabellen werden in Attibute und Abfragen unterteilt. Um eine neue Abfrage hinzuzufügen machst du einfach einen Rchtsklick auf eien vorhandene Abfrage uns sagst neue Abfrage erstellen. Dann einfach wider dem Assistenten folgen.Code :1
Me.NamedesDatasetz.TableAdapter
Anmerkung: Natürlich kannst du das DataSet auch per VB-Code-Eingabe erstelltn, so übernimmt das der Assistent für dich.
Anmerkung 2: Wenn du eine Abfrage mit einer Parameterübergabe machen willst mußt du beachten das bei Access-Datenbanken das ? als Parameter gilt, nicht wie beim MSSQL Server @Parametername.Bitte alle erledigten Themen abschliessen.
-
02.01.08 13:19 #5
- Registriert seit
- Nov 2007
- Beiträge
- 93
Also ich habe jetzt folgenden Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
Imports System.Data.OleDb Public Class Form3 Private Sub btn_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_OK.Click If txt_Programm_eingeben.Text = "" Then MsgBox("Bitte geben Sie ein Programm-Namen ein!", vbInformation) Me.ActiveControl = txt_Programm_eingeben Else If txt_Anzahl_Lizenzen.Text = "" Then MsgBox("Bitte geben Sie die Anzahl der verfügbaren Lizenzen dieses Programmes ein!", vbInformation) Me.ActiveControl = txt_Anzahl_Lizenzen Else If IsNumeric(txt_Anzahl_Lizenzen.Text) = False Then MsgBox("Bitte geben Sie ausschließlich Zahlen bei den Lizenzen ein!", vbInformation) txt_Anzahl_Lizenzen.Focus() txt_Anzahl_Lizenzen.SelectAll() Else Try Dim cmd As New OleDbCommand("INSERT INTO Programm (Programm, insgLizenz) VALUES(" & txt_Programm_eingeben.Text & ", '" & txt_Anzahl_Lizenzen.Text & "')", Con) Con.Open() cmd.ExecuteNonQuery() txt_Programm_eingeben.Text = "" txt_Anzahl_Lizenzen.Text = "" MsgBox("Das Programm wurde hinzugefügt!") Catch ex As Exception MsgBox(ex.Message) Finally Con.Close() End Try txt_Programm_eingeben.Text = "" txt_Anzahl_Lizenzen.Text = "" Form1.Show() Me.Hide() End If End If End If End Sub
Das ist das gleiche wie der erste Code (im großen und Ganzen).........Was ist an diesem Code denn falsch?
Jedesmal wenn ich auf den "OK" Button klicke kommt: "Für mindestens einen erforderlichen Paramter wurde kein Wert angegeben".
Ich habe in der Tabelle Programm: "ID" (AutoWert), "Programm" und "InsgLizenz".
Wenn ich den Code mit den Textfeldern umwandeln würde, dann würde er doch auch direkt auf den andern passen, deswegen versteh ich nicht, warum da jetzt sowas kommt.
?
-
02.01.08 14:26 #6
Wo hast du denn Code jetzt her?
Bei deinem SQL-String fehlen bei dem Paramter für Programm die ''
Ausser das Programm aus einem Integer besteht.Code :1
Dim cmd As New OleDbCommand("INSERT INTO Programm (Programm, insgLizenz) VALUES([COLOR=red]'[/COLOR]" & txt_Programm_eingeben.Text & "[COLOR=red]'[/COLOR], '" & txt_Anzahl_Lizenzen.Text & "')", Con)Bitte alle erledigten Themen abschliessen.
-
02.01.08 14:56 #7
- Registriert seit
- Nov 2007
- Beiträge
- 93
Ah ok
.................ich habe einen Freund von mir angerufen und der hat mir das kurz erklärt, aber das war am Telefon und diese Person hatte auch nicht allzu viel Zeit .........
Aber ich habe jetzt trotzdem noch eine Frage:
Also die veränderte Datei funktioniert jetzt super, aber nur eins versteh ich jetzt nicht. Ich habe das Office 2007 vor ein paar Tagen bekommen und habe nun ein paar mehr Funktionen in Access und wenn ich jetzt in meine Tabelle gehe (Benutzer) und dann auf das kleine +-Zeichen klicke bei der Nr, dann sehe ich das Programm, dass die Nr hat (AutoWert), dabei sollte ich ja das Programm sehen, dass die ID-Nr hat. Wisst ihr was ich meine?
Ich habe ja extra zwei Tabellen gemacht, wegen den Wiederholungsfeldern.
Schwer zu erklären
-
Hallo,
Auch Dir ein frohes und gesundes Neujahr!
Sorry, ich habe es irgendwie übersehen, dass Du VB.Net meintest
Natürlich, galt meine Lösung dem alten guten VBA
.
Freue mich, dass trotzdem alles geklärt werden könnte.
Als Info für Datenbankzugriff über ADO.Net würde ich den folgenden Link empfehlen:
http://www.galileocomputing.de/openb...b35540b9ef6273
Wenn Du ein anderes DBMS als MS SQL Server benutzt, sollte man darauf achten, dass ein richtiger Datenprovider eingesetzt wird (OleDB oder ODBC statt SqlClient).
Grüße aus Braunschweig
Ähnliche Themen
-
Datensatz zwischen Bestehenden einfügen
Von Registrierer im Forum PHPAntworten: 2Letzter Beitrag: 21.05.10, 17:44 -
Datensatz dazwischen einfügen
Von beckersbesters im Forum PHPAntworten: 3Letzter Beitrag: 14.01.09, 09:49 -
Datensatz einfügen mit PHPMYADMIN
Von phPimp im Forum PHPAntworten: 5Letzter Beitrag: 07.12.05, 07:17 -
Neuen Datensatz einfügen
Von Jerinca im Forum ASPAntworten: 2Letzter Beitrag: 25.10.04, 13:28 -
Datensatz aus windows formular in Tabelle einfügen
Von mariemueller im Forum .NET ArchivAntworten: 2Letzter Beitrag: 27.07.04, 17:31





Zitieren
Login





