Zugriff mit VB 2008 auf Access-Datenbank


NSV10

Grünschnabel
Hallo,

Ich bin im Bereich Visual Basic völlig neu und versuche nach einigen Start-Tutorials nun auf Access-Datenbanken zuzugreifen.
Mein Problem ist, dass ich überhaupt nicht weiß, wie ich das Problem angehen soll. Ich habe in tutorials für Visual basis 6.0 schon gute Hilfestellungen gefunden, aber in VBA 2008 ist die Oberfläche eine andere. Ich habe bereits versucht mit einem DataGridView versucht eine Abfrage zu starten, bin aber gnadenlos gescheitert.

Das reine öffnen aus einer in Access-Datenbank mit folgendem Code funktionierte auch nicht:

Code:
Imports System.Data.OleDb
Public Class Form1
    Dim con As New OleDbConnection
    Dim cmd As New OleDbCommand
    Dim reader As OleDbDataReader

    con.ConnectionString ="Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=O:\Ablage\06_MTE\Florian Hempel\Cotecmar Ship Repair\Projektunterlagen\Aufträge_Terminierung.accdb"
    cmd.Connection = con
    cmd.CommantText = "select * from Aufträge"

    Try
    con.Open()
End Class

Mir ist bewusst, dass das ein Forum für Visual Basic 6.0 ist. Vielleicht könnt ihr mir trotzdem weiterhelfen oder mir Hilfestellungen geben oder auf andere Foren verweisen.

Vielen Dank schon mal dafür.

Gruß NSV10
 

Yaslaw

n/a
Moderator
Erste Frage. Ist dein Programm in VB6 geschrieben und greift auf MS Access 2008 zu oder ist es mit VBA in MS Access 2008 geschrieben?
 

Yaslaw

n/a
Moderator
Jepp. Das ist VB.Net Version 2008

VBA ist Visual Basic for Applications. Also die Makro-Sprache von MS Office. Also nicht das gleiche.

Ich mach dann mal Platz für Leute die eine Ahnung von .Net haben
 

Spyke

Premium-User
Fehlermeldung wäre interessant.
Auf den ersten Blick scheints richtig zu sein, allerdings kann man bei bestimmt Commands glaube auch noch einen Typen hinterlegen ob es Update, Select etc. ist.
(Hab jetzt kein VS hier)

Immer Fehlermeldung mit hinschreiben, könnte ja auch sein das du ganz blöd keine Berechtigungen hast für den Ordner.
 

NSV10

Grünschnabel
Das ist meine Fehlermeldung zu meinem Code:

Fehler 1 Deklaration erwartet. Zeile 7 Spalte 5

Fehler 2 Die Anweisung kann nicht außerhalb des Methodentexts stehen. Zeile 11 Spalte 5

Fehler 3 Deklaration erwartet. Zeile 12 Spalte 5
 

Spyke

Premium-User
Das sind alles Syntax Fehler.
Ist das oben der Originalcode?
Du hast nämlich alles direkt in die Klasse gemacht, du brauchst dafür ne Methode.
Und unten deinen try hast du nicht wieder geschlossen.

Schau dir nochmal die Tutorials an.
 

NSV10

Grünschnabel
Hallo,

also der Datenbank-Zugriff hat nun endlich geklappt. Nun hab ich das Problem, dass ich über eine Schaltfläche weitere Werte in die Datenbank einfügen möchte. Dies Schaltfläche sieht wie folgt aus:

tutorial.jpg

Code:
Module Module2
    'Prüfen ob Werte eingegeben wurden

    Function PrüfenObLeer(ByVal Textbox As TextBox) As Boolean
        Try
            If Textbox.Text = "" Then
                Textbox.Focus()
                'Zurückgehen in if-Bedingung von Form2 wenn Eingabe nicht korrekt
                Return False
            Else
                'Zurückgehen in Form2 wenn Eingabe korrekt (weiterlaufen im Programm)
                Return True
            End If
        Catch ex As Exception
            'Zurückgehen in if-Bedingung von Form2 (Wenn Prüfung nicht geklappt hat)
            Return False

        End Try
    End Function

End Module

Public Class Form2

    Private Sub cmdSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSpeichern.Click

        'Prüfen ob Werte eingegeben wurden
        If Module2.PrüfenObLeer(txtProjektname) = False Then
            MessageBox.Show("Bitte Eingabe Prüfen")
            Exit Sub
        End If

        If Module2.PrüfenObLeer(txtFertigstellungstermin) = False Then
            MessageBox.Show("Bitte Eingabe Prüfen")
            Exit Sub
        End If

      Dim x As New Date
        If txtFertigstellungstermin.Text = "" Then 



        End If

        'Prüfen ob eingegebene Werte korrekt sind
        'Dim x As New Date
        'If Not Date.TryParse(txtFertigstellungstermin, x) Then
        'MessageBox.Show("Bitte Eingabe Prüfen")
        'Exit Sub
        'End If

        'Dim y As String
        'If Not String(txtProjektname, y) Then
        'MessageBox.Show("Bitte Eingabe Prüfen")
        'Exit Sub
        'End If


        'Erstellung eines DataView-Objektes (Einspeisung mit DataTable) zur Prüfung ob Projektname
        'schon existiert: Durcchsuchung von entsprechender Zeile udn Spalte in DataView-Objekt
        Dim dv As DataView = New DataView(DS.Tables("Aufträge"))
        dv.Sort = "Projektname"
        Dim index As Integer = dv.Find(txtProjektname.Text)

        If index <> -1 Then
            MessageBox.Show("Der Artikel" & txtProjektname.Text & "existiert bereits")
            Exit Sub
        Else

            'neue Reihe in DataViewObjekt erzeugen

            Dim newRow As DataRowView = dv.AddNew()
            newRow("Projektname") = txtProjektname.Text
            newRow("Fertigstellungstermin") = txtFertigstellungstermin.Text

        End If

        'Änderungen in DataTable (Tabelle in DataSet) einspeichern:
        'Es wird eine neue Reihe in der DataTable „Products“ erzeugt, in die die    
        'eingegebenen Werte zu den dazugehörigen Spalten geschrieben werden


        Dim row As System.Data.DataRow = DS.Tables("Aufträge").NewRow
        row("Projektname") = txtProjektname.Text
        row("Fertigstellungstermin") = txtFertigstellungstermin.Text

        row.EndEdit()

        'Soll Produkt in Datenbank eingespeichert werden?

        MessageBox.Show("Neuer Auftrag wurde gespeichert")

        Me.Close()
        Form6.Show()

    End Sub

    Private Sub cmdAbbrechen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAbbrechen.Click
        'Zurück zu Form1
        Me.Close()
        Form1.Show()
    End Sub
End Class

Ab Zeile 38 versuche ich eine Code zu schreiben, dass beim Klicken auf den Button Speichern die Werte in die Tabelle hinzugefügt werden. Nur Scheiter ich daran, weil ich nicht weiß welche Befehle ich dort benutzen muss. Ich möchte für den Fertigstellungstermin ein Datum ein geben und für den Projektname einen String. Aber das funktioniert nicht so recht. Das hab ich daher anschließend in einen Kommentar (Zeile 46-56) gesetzt weil er mir da immer eine Fehlermeldung anzeigt.

Fehlermeldung:

tutorial2.jpg


Das DataGridView sieht bis jetzt so aus. Nach dem Zugriff auf die bereits in der Datenbank eingetragenen Werte.

Wenn Ihr mir ein paar Tipps geben könntet, wäre das super.

Vielen Dank schon mal vorab.

Gruß NSV10

tutorial1.jpg
 

Spyke

Premium-User
1. DIM x As New Date, hast du 2mal in deiner Prozedur gehabt, sprich X als variablen Name war/ist schon vergeben.

2. Gerade mein VB zu schlecht um das so zu erkennen

3. Irgendwo Punkt (oder sowas in der Art, ist zu klein der screen) vergessen.

Aber im Grunde alles Syntax Fehler, Visual Studio sollte dich mit doppelklick zu den Fehler lotsen können und diese sollten auch rot unterkringelt sein.