Gå til innhold

Trenger hjelp med skriving, lagring og endring mdb


Anbefalte innlegg

Skrevet

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

Videoannonse
Annonse
Skrevet

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

Skrevet

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....

Skrevet

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.

Skrevet

har prøvd å finne litt om det på internett. har søkt i hele helgen. Bok har jeg egentlig ikkje tid å lese da dette haster.

Men skal prøve å få utsatt prosjektet så jeg kansje får tid å sette meg mer inn i dette.

For en ting er sikkert. Jeg gir meg ikkje :)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...