Avatar billede rusti Nybegynder
04. marts 2010 - 21:12 Der er 17 kommentarer og
1 løsning

Problemer med adodc recordsource

Hej jeg har lavet et pogram i visual basic 6 hvor jeg henter nogle data fra en database ud fra nogle forskellige kriterier men efter jeg har installeret windows 7 vil den ikke hente dem mere...

her er min kode

    Adodc5.RecordSource = "SELECT Sum([Løn]) AS SumLøn FROM skatteoplysninger GROUP BY Year([DatoFra]), [Førernr] HAVING (((Year([DatoFra]))=Year(Date())) AND (([Førernr])='" & Førernr & "'))"

    Adodc5.Refresh
   
    If Adodc5.Recordset.EOF Then
    Løn = "0,00"
    Else
    Løn = Round(Adodc5.Recordset.Fields("sumløn") & "", 2)
    End If
   
    Løn1 = Round(Løn + Beløb6, 2)
   
    sText = "Afregning27" & SEPARATOR
    sText = sText & "Løn :"
    sText = sText & SEPARATOR & "7,1,0,0,1,0"
    vpFields.Add sText

    sText = "Beløb27" & SEPARATOR
    sText = sText & Format(Løn1, "###0.00")
    sText = sText & SEPARATOR & "7,1,0,0,1,1"
    vpFields.Add sText

Nogle der kan fortælle mig hvorfor det ikke virker i windows 7
når det virker i Windows vista og hvad jeg måske ellers skal skrive...
Avatar billede kdasummer Nybegynder
04. marts 2010 - 22:15 #1
prøv at lave en on error resume next og fyld et par msgbox(err.description) på.. tit kan man få lidt mere forståelige fejlmeddelelser på den måde..

dog er adodc fra før biblen blev skrevet, så måske er den udfaset i windows 7. prøv om du kan downloade en adodc ocx-fil et sted og registrere den. (via http://support.microsoft.com/kb/146219)
Avatar billede terry Ekspert
05. marts 2010 - 10:52 #2
what error do you get?
Avatar billede rusti Nybegynder
05. marts 2010 - 18:46 #3
Hej Den laver ikke nogen error og den gemmer fint i databasen den siger bare at Adodc5.Recordset.EOF er true men den har ikke læst de dataer der ligger i tabellen
Avatar billede terry Ekspert
05. marts 2010 - 19:36 #4
Not sure if Adodc5.Refresh is correct, have you tried Adodc5.requery?

Actually I dont see why you need to refresh or requery, if the select returns values then EOF should be false.

I would suggest that you try the SQL directly in the dB as a query to make sure that it actually does return somnething.
Avatar billede terry Ekspert
05. marts 2010 - 19:40 #5
The Refresh method isnt used to refresh the data in a recordset.

http://ns7.webmasters.com/caspdoc/html/ado_collections_refresh_method.htm


Actually I dont think you are showing us all of the code, where do you open the recordset etc?
Avatar billede rusti Nybegynder
05. marts 2010 - 23:39 #6
hvis jeg fjerner Adodc5.Refresh så laver den en fejl så den skal være der
Avatar billede terry Ekspert
06. marts 2010 - 09:56 #7
have you tried the SQL directly in the dB?
Avatar billede terry Ekspert
06. marts 2010 - 10:10 #8
If youdontget an error and EOF is tru thin it sounds to me as though its not reading any records and I cant see what that has to do with Windows 7.
Avatar billede rusti Nybegynder
06. marts 2010 - 10:59 #9
nej jeg har ikke prøvet sql men det virker i vista men nu har jeg installeret windows 7 og så virker det ikke...
Avatar billede terry Ekspert
06. marts 2010 - 11:43 #10
Unless you get an error then I cant see that Windows 7 should return no records.

Try making an error routine


http://msdn.microsoft.com/en-us/library/5hsw66as(VS.80).aspx
Avatar billede rusti Nybegynder
09. marts 2010 - 20:15 #11
Nu har jeg fundet fejlen det er fordi jeg går ned i databasen og kigger efter år 2010 da det er det år vi er i. Men jeg skal kigge efter året som jeg har valgt ud fra et datofelt der hedder txtSlutdato
Avatar billede terry Ekspert
09. marts 2010 - 20:23 #12
"have you tried the SQL directly in the dB?" :o)

I assume you have also corrected the error?
Avatar billede rusti Nybegynder
09. marts 2010 - 20:50 #13
nej det har jeg ikke...

jeg kan ikke få det til at virke ved ikke helt hvad kode jeg skal skrive... har prøvet lidt forskelligt
Avatar billede rusti Nybegynder
09. marts 2010 - 21:04 #14
Adodc5.RecordSource = "SELECT sum([Løn]) AS sumløn FROM skatteoplysninger GROUP BY Year([Dato]), [Førernr] HAVING (((Year([Dato]))=Year(Date())) AND (([Førernr])='" & Førernr & "'))"
men jeg skal ud fra et felt der hedder txtførernr tage årstallet og gå ned i databasen i tabellen dato og hente alle de felter der passer med årstallet og førernummeret.
Avatar billede terry Ekspert
09. marts 2010 - 21:06 #15
You could try

  Adodc5.RecordSource = "SELECT Sum([Løn]) AS SumLøn FROM skatteoplysninger GROUP BY Year([DatoFra]), [Førernr] HAVING (((Year([DatoFra]))= " & Year([txtSlutDato]) & ")) AND (([Førernr])='" & Førernr & "'))"


This is assuming txtSlutDato is a dato field and you want to get the year from the field (Year([txtSlutDato]) )

If the field only contains the year then you just [txtSlutDato]
Avatar billede terry Ekspert
09. marts 2010 - 21:07 #16
I'm closing down for the night, back tomorrow.
Avatar billede rusti Nybegynder
13. marts 2010 - 11:51 #17
tak for hjælpen jeg fik det til at virke send lige et svar så du kan få dine point
Avatar billede terry Ekspert
13. marts 2010 - 11:57 #18
Thanks, have a good weekend
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester