Gullars Skrevet 2. august 2004 Del Skrevet 2. august 2004 Hei! Eg har laga eit prosjekt i VB med videoutleige, kunderegister osv. For å koma kjapt til problemet: Eg har laga ein månadsrapport, kor det går an å skriva ut alle videoane som er leigt ut ved å skriva inn første dato og siste dato i månaden. Denne fungerer heilt fint, men når eg lukker rapporten og skal skriva ut ein gong til, får eg følgjande feilmelding når eg skriv inn den siste datoen: Run-time error 3705: Operasjonen er ikke tillatt når objektet er åpent. Eg kopler til databasen ved hjelp av Data Environment, og følgjande SQL-snutt i cmdMånedsrapport: SELECT Filmer.Tittel, Filmer.Type, Priskategorier.Pris, Utleie.Dato FROM Priskategorier INNER JOIN (Kunderegister INNER JOIN (Filmer INNER JOIN Utleie ON Filmer.FilmID = Utleie.FilmID) ON Kunderegister.Kundenummer = Utleie.Kundenummer) ON Priskategorier.Priskategori = Filmer.Priskategori GROUP BY Filmer.Tittel, Filmer.Type, Priskategorier.Pris, Utleie.Dato HAVING (((Utleie.Dato) BETWEEN `Skriv inn første dato:` AND `Skriv inn andre dato:`)); Koden er vel klippa direkte frå Access viss eg ikkje hugsar heilt feil. Eg har konkludert med at feilen kjem når han skal leggja til to inputs, når han allereie har fått dei tidlegare. Det må vel difor vera nok å lukka koplinga cmdMånedsrapport og deretter opna ho igjen når ho er tilbakestilt? Men korleis gjer eg dette? Lenke til kommentar
GeirGrusom Skrevet 2. august 2004 Del Skrevet 2. august 2004 Nå har ikke jeg noensinne hørt om data environment, men slik det fungerer i ADODB: [object].Close Set [object] = Nothing Lenke til kommentar
Gullars Skrevet 3. august 2004 Forfatter Del Skrevet 3. august 2004 Det måtte i så tilfelle blitt slik: deDatabase.cmdMånedsrapport.Close Set deDatabase.cmdMånedsrapport = Nothing Dette fungerte ikkje, og eg fekk følgjande feilmelding: Argument not optional Lenke til kommentar
GeirGrusom Skrevet 3. august 2004 Del Skrevet 3. august 2004 Det betyr at Close funksjonen trenger parameter, sjekk ut hva det er den skal ha. Lenke til kommentar
Gullars Skrevet 3. august 2004 Forfatter Del Skrevet 3. august 2004 Eg er ikkje heilt sikker på kva du meiner. Korleis finn eg ut kva parameter Close-funksjonen skal ha? Lenke til kommentar
GeirGrusom Skrevet 4. august 2004 Del Skrevet 4. august 2004 Når du skriver deDatabase.cmdMånedsrapport.Close og trykker mellomrom, kommer det opp et tooltip vindu hvor det står f.eks. "Recordset.Close(Parameter1 As IDatabase)" eller noe slikt, se hva det står der, og fyll inn det du kan tenke deg den trenger. Vent... nå tror jeg at jeg husker data environment, det er MSDE du snakker om! dumme meg... privat versjon av Microsoft SQL Server med opp til 5 brukere som følger med Visual Studio 6.0... nå har ikke jeg MSDE installert, så jeg kan desverre ikke hjelpe deg med det. Lenke til kommentar
aadnk Skrevet 4. august 2004 Del Skrevet 4. august 2004 Du bør helst ikke bruke Data Enviroment, men heller gå rett over til ADO. Referer Microsoft ActiveX Data Objects 2.0 Library og alloker databasen og tilkoblingen med denne koden: Private WithEvents connConnection As ADODB.Connection Private WithEvents rsRecordSet As ADODB.Recordset Denne artikkelen her gir utvilsomt en god forklaring på hvordan du skal bruke ADO, så jeg vil anbefale deg å lese den. Lenke til kommentar
Gullars Skrevet 5. august 2004 Forfatter Del Skrevet 5. august 2004 Heile prosjektet er laga med Data Environment, så det blir veldig stress å gå over til ADO nå. Får heller læra meg det neste gong eg skal laga eit så stort prosjekt. Men takk for tipsa. Eg skal prøva det GeirGrusom nemnte. 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å