Gå til innhold

Trenger hjelp med skriving, lagring og endring mdb


Anbefalte innlegg

Har en venn som sliter i Visual Basic og trenger noe laget.

Det skal være et program som gjør følgende:

 

Den skal lese og skrive informasjon til .mdb fil.

Og skal kunne endre i mdb filen direkte i programmet.

 

Eks:

Jeg velger at jeg har 1 sykkel.

Den koster 234kr å fikse

Og sykkelen er verdt 4300kr ny.

 

Det skal kunne lagres i en mdb fil der første linje eks inneholder:

antall, reperasjon, nypris

 

 

 

og så går informasjonen nedover etterhvert så det blir endret på.

Hadde og våre greit å fått lest informasjonen ifra mdb filen og inn i programmet slik at den som styrer alt har bruk for å vite eks hvor mangen sykler det er igjen å fikse.

 

Og å kunne endre noe i mdb filen viss det viser seg at han har skrevet feil.

(endre i programmet da en helt idiot skal kunne bruke dette)e

 

 

Er dette en mulighet å få til?

Viss dere ikkje forstod så bare kom med spørsmål.

Er ikkje alltid så god til å forklare jeg :)

 

Hadde våre greit viss noen kunne hjulpet godt på vei.

 

Hilsen desperat XeLix

Lenke til kommentar
Videoannonse
Annonse

Har kommet et lite stykke.

 

Men har et problem.

 

Skal prøve å oppdatere databasen med endringer.

Men det krasjer hver gang jeg prøver.

 

OleDBExeption was unhandled.

Syntaksfeil (operator mangler) i spørreuttrykket (((? = 1 AND Ubrukt IS NULL) OR (Ubrukt = ?)) AND (Linje = ?) AND ((? = 1 AND Pris Pr Stk IS NULL) OR (Pris Pr Stk = ?)) AND ((? = 1 AND Antall IS NULL) OR (Antall = ?)) AND ((? = 1 AND Pris Totalt IS NULL) OR (Pris Totalt = ?)) AND ((? = 1 AND Varenavn I

 

Dette skjer da jeg trykker på oppdater database (når jeg har endret på teksten og vil oppdatere den)

 

da.Update(ds, "basekunde")<-- der stopper den

 

Det ligger i slutten av kildekoden i quote.

 

' lar meg jobbe med forsjellige objekter i databasen

Imports System.Data

Public Class Form1

    Dim inc As Integer

    Dim maxrows As Integer

 

    ' con lag meg holde kontakten med databasen og holder den åpent da.

    Dim con As New OleDb.OleDbConnection

 

    ' dataadapter kontakter connection objekt og utfører handlingene, slik at dataset får informasjon

    Dim ds As New DataSet

    Dim da As OleDb.OleDbDataAdapter

    Dim sql As String

 

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' velger hvor databasen er og hvilken type data system den skal bruke

        con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = basen.mdb"

 

        ' velger hvilket database exel ark den skal bruke

        sql = "SELECT * FROM prkunde"

        ' slår isammen med sql con slik sql og con får data

        da = New OleDb.OleDbDataAdapter(sql, con)

        ' angir ds som basekunde og lukker connection

        da.Fill(ds, "basekunde")

        con.Close()

 

        ' rows count teller antall rows i basen

        maxrows = ds.Tables("basekunde").Rows.Count

        ' denne lar meg velge hvor i databasen den skal lese ifra

        inc = -1

    End Sub

    Private Sub NavigateRecords()

        ' denne leser hvor i databasen der den skal finne alt informasjonen og sender det

        ' videre slik at programmet vet hvor den skal lete når den skal lese igjennom hva som er skrevet

        linjenummer.Text = ds.Tables("basekunde").Rows(inc).Item(1)

        varenavn.Text = ds.Tables("basekunde").Rows(inc).Item(5)

        pris.Text = ds.Tables("basekunde").Rows(inc).Item(2)

        antall.Text = ds.Tables("basekunde").Rows(inc).Item(3)

        totalt.Text = ds.Tables("basekunde").Rows(inc).Item(4)

 

 

    End Sub

 

    Private Sub btnneste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnneste.Click

        ' plusser på 1 i inc så den får neste linje

        If inc <> maxrows - 1 Then

            inc = inc + 1

            ' ropet opp navigaterecords subben og får informasjon om hvor den skal hente forsjellige informasjonen ifra (rows)

            NavigateRecords()

        Else

            MsgBox("Ingen flere lagret")

        End If

    End Sub

 

    Private Sub btntilbake_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntilbake.Click

        ' trekker ifra en på inc slik den går tilbake et hakk

        If inc > 0 Then

            inc = inc - 1

            NavigateRecords()

            ' viss det ikkje er flere å trekke ifra så kommer dette

        ElseIf inc = -1 Then

            MsgBox("Ingenting lagret")

        ElseIf inc = 0 Then

            MsgBox("Dette er første bestillingen som er lagret")

        End If

    End Sub

 

    Private Sub btnsiste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsiste.Click

        ' rekner ut ut hva den siste i databasen er og hopper til den

        If inc <> maxrows - 1 Then

            inc = maxrows - 1

            NavigateRecords()

        End If

    End Sub

 

    Private Sub btnførste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnførste.Click

        ' får automatisk beskjed at den skal hoppe til 0 for å komme til første post.

        If inc <> 0 Then

            inc = 0

            NavigateRecords()

        End If

    End Sub

 

    Private Sub btnoppdater_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnoppdater.Click

        Dim cb As New OleDb.OleDbCommandBuilder(da)

 

        ds.Tables("basekunde").Rows(inc).Item(1) = linjenummer.Text

        ds.Tables("basekunde").Rows(inc).Item(5) = varenavn.Text

        ds.Tables("basekunde").Rows(inc).Item(2) = pris.Text

        ds.Tables("basekunde").Rows(inc).Item(3) = antall.Text

        ds.Tables("basekunde").Rows(inc).Item(4) = totalt.Text

 

 

        da.Update(ds, "basekunde")

 

 

        MsgBox("Vare oppdatert")

    End Sub

End Class

Lenke til kommentar

skrev jo hva jeg fekk som feilmelding....

 

 

OleDBExeption was unhandled.

Syntaksfeil (operator mangler) i spørreuttrykket (((? = 1 AND Ubrukt IS NULL) OR (Ubrukt = ?)) AND (Linje = ?) AND ((? = 1 AND Pris Pr Stk IS NULL) OR (Pris Pr Stk = ?)) AND ((? = 1 AND Antall IS NULL) OR (Antall = ?)) AND ((? = 1 AND Pris Totalt IS NULL) OR (Pris Totalt = ?)) AND ((? = 1 AND Varenavn I

 

 

står i siste posten min....

Lenke til kommentar

Jeg vil tro det spørreutrykket ble generert automatisk av Visual Studio. Du kan jo alltids forsøke å oppdatere IDE-programmet (laste ned en nyere versjon, ect.), men kanskje det beste er å finne alternativer, det være seg eksterne verktøy eller kodesnipper, og skrive koden selv. Ta en søketur på Google eller fin deg en god bok om emnet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...