Iminzilion Skrevet 22. august 2007 Rapporter Del Skrevet 22. august 2007 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
GeirGrusom Skrevet 22. august 2007 Rapporter Del Skrevet 22. august 2007 mdb access database mener du? I VB6 er dette gjort nesten uten en linje kode. Lenke til kommentar
Iminzilion Skrevet 22. august 2007 Forfatter Rapporter Del Skrevet 22. august 2007 bruker v.2005 og ja. mdb access database. Lenke til kommentar
Iminzilion Skrevet 24. august 2007 Forfatter Rapporter Del Skrevet 24. august 2007 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 databasenImports 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
Iminzilion Skrevet 24. august 2007 Forfatter Rapporter Del Skrevet 24. august 2007 ingen som kan hjelpe? Lenke til kommentar
Manfred Skrevet 24. august 2007 Rapporter Del Skrevet 24. august 2007 "der stopper den"? Hva med å si HVA det står i feilmeldingen du får?? Lenke til kommentar
Iminzilion Skrevet 24. august 2007 Forfatter Rapporter Del Skrevet 24. august 2007 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
GeirGrusom Skrevet 25. august 2007 Rapporter Del Skrevet 25. august 2007 Hvorfor er den spørresetningen så komplisert? Lenke til kommentar
Manfred Skrevet 25. august 2007 Rapporter Del Skrevet 25. august 2007 Har ikke orket å prøve å lese gjennom sql'en en gang. Den virker unødvendig tumlete. Det gjør saken en anelse vanskeligere å debugge også. Lenke til kommentar
Iminzilion Skrevet 25. august 2007 Forfatter Rapporter Del Skrevet 25. august 2007 noen som kan hjelpe meg da med å få til dette? Skal kunne hente informasjon ifra en access database, redigere i databasen og lage nye linjer i databasen. Lenke til kommentar
aadnk Skrevet 25. august 2007 Rapporter Del Skrevet 25. august 2007 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
Iminzilion Skrevet 27. august 2007 Forfatter Rapporter Del Skrevet 27. august 2007 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 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå