Avatar billede ultra Nybegynder
14. maj 2003 - 17:24 Der er 23 kommentarer og
1 løsning

Debet - Kredit = Sum

Hej,

Jeg har et lille problem med at minuse to felter fra en Access database.

Felterne hedder: Debet og Kredit og mit spm. er hvordan laver jeg et script/funktion der lægger alle poster sammen i feltet Debet og Kredit og derefter minuser de to felter.

NB: Der er altid en tom felt altså når der stå noget i Debet så er Kredit tom og modsat.


Nogen der kan hjælpe mig?  På forhånd tak!
Avatar billede eagleeye Praktikant
14. maj 2003 - 17:30 #1
Du kan lave en SQL som gør det:

SQL = "SELECT (sum(debit) - sum(kredit)) as diffdekr FROM tabel"
Set rs = Conn.Execute(SQL)

Response.write "Differense mellem debit og kredit er : " & rs("diffdekr")
Avatar billede eagleeye Praktikant
14. maj 2003 - 17:39 #2
Du kan også gør det for hver enketl kolonne så skal du bare fjerne sum.
Avatar billede ultra Nybegynder
14. maj 2003 - 17:46 #3
>> eagleeye

mange tak! :)

så har jeg en lille spm. til, jeg har en felt der hedder Beløb og den stå i Access db som Data Type: Number og Format: Currency

Så når jeg kalder den frem på den her måde Response.Write RS("Belob") få jeg den her fejl meddelse: ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

På forhånd tak ! :)
Avatar billede eagleeye Praktikant
14. maj 2003 - 17:53 #4
Det er fordi belob ikke er i recordsetet enten fordi kolonne hedder beløb med ø eller for fordi din SQL sætning ikke hendter den kolonne:

"SELECT id, navn FROM xxx"
Så vil den fejl komme hvis man bruger rs("belob"), da belob ikke står mellem SELECT og FROM.
Avatar billede ultra Nybegynder
14. maj 2003 - 17:59 #5
Men hvis jeg laver den om i Access til Data Type: Text så virker den fint
Avatar billede eagleeye Praktikant
14. maj 2003 - 18:18 #6
Ok det virker meget mærkeligt, det ved jeg faktisk ikke så. Det har jeg ikke set før.
Avatar billede eagleeye Praktikant
14. maj 2003 - 18:19 #7
Kan kolonne være tom, det kan den vist ikke når det er currentcy.
Avatar billede ultra Nybegynder
14. maj 2003 - 18:30 #8
Jeg fik uploadet databasen igen og nu virker det :) (mærkeligt!)

Men så har jeg en anden problem og det er når jeg vil tilføje nye data så få jeg den her fejl meddelse:
Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

Men hvis jeg laver om på Data Typen til Data Type: Text
Så virker det fint...?! :(
Avatar billede cdm_kiwie Nybegynder
14. maj 2003 - 18:34 #9
ud fra hvad jeg kender til summen af debit og summen af kredit gerne være den samme, eller har man bogført forkert.
Avatar billede cdm_kiwie Nybegynder
14. maj 2003 - 18:35 #10
:/ skummel skrive fejl.

Ud fra hvad jeg kender til regnskab så skal summen af debit og summen af kredit gerne være den samme, eller har man bogført forkert.
Avatar billede eagleeye Praktikant
14. maj 2003 - 18:37 #11
Ja hvis alle posteringer i samme tabel skulle det vil give 0.
Hvilken typer er de to kolonner?
Avatar billede ultra Nybegynder
14. maj 2003 - 18:38 #12
Data Type: Number og Format: Currency
Avatar billede ultra Nybegynder
14. maj 2003 - 18:39 #13
>> cdm kiwiw

Ja, det er rigtigt nok :)

Men den her script bruges til et andet formål ;)
Avatar billede cdm_kiwie Nybegynder
14. maj 2003 - 18:40 #14
ultra << fint nok. Jeg ville bare lige spille kloge Åge :-P
Avatar billede ultra Nybegynder
14. maj 2003 - 18:42 #15
>> cdm kiwie

Det er helt ok :)
Avatar billede eagleeye Praktikant
14. maj 2003 - 18:42 #16
Hvis du ligger tal ind i en tekst kolonne med SQL så skal du havde ' omkrign:

INSERT INTO xxx (belob) VALUES('223.45')
Avatar billede ultra Nybegynder
14. maj 2003 - 18:56 #17
Men kolonen er ikke text type.

Kolonen er Data Type: Number og Format: Currency

Hvis jeg laver kolonen om til TEXT så virker den fint.
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:08 #18
Er det når du udskriver du får den fejl?
Avatar billede ultra Nybegynder
14. maj 2003 - 19:17 #19
Nej, nå jeg vil tilføje nye data så få jeg den her fejl:

Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:19 #20
Ok, hvordan ser den SQL så ud?
Avatar billede ultra Nybegynder
14. maj 2003 - 19:22 #21
Sådan her:
Connection.Execute( "INSERT INTO Accounts(AccountReceipts,AccountExpenditure) VALUES('" & Replace(Request.Form("AccountReceipts"),"'","''") & "','" & Replace(Request.Form("AccountExpenditure"),"'","''") & "')")
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:28 #22
Når det er data type fejl så prøv at fjerne ' omnkring, da der normalt ikke skal ping ' omkring ved tal felter.:

Connection.Execute( "INSERT INTO Accounts(AccountReceipts,AccountExpenditure) VALUES(" & Replace(Request.Form("AccountReceipts"),"'","") & "," & Replace(Request.Form("AccountExpenditure"),"'","") & ")")
Avatar billede ultra Nybegynder
14. maj 2003 - 19:55 #23
Så få jeg den her fejl:

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement
Avatar billede ultra Nybegynder
14. maj 2003 - 19:59 #24
>> eagleeye

mange tak for hjælpen!
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
Kategori
Kurser inden for grundlæggende programmering

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