Avatar billede mini41 Nybegynder
01. maj 2003 - 10:27 Der er 21 kommentarer og
1 løsning

Begrænset udtræk fra DB

Håber på lidt hjælp med dette her:
Jeg skal hente poster fra min db som skal være bestem af en bestemt dato rækkefølge.

Jeg bruger dette til at selecte dato, hvor der vælges startdato og slutdato:

<form method="POST" action="tekniker.asp">

<table border="0" width="100%">
  <tr>
    <td width="17%"><select size="1" name="fradato">
  <option value="1.">1.</option>
  <option value="2.">2.</option>
  <option value="3.">3.</option>
  <option value="4.">4.</option>
  <option value="5.">5.</option>
  <option value="6.">6.</option>
  <option value="7.">7.</option>
  <option value="8.">8.</option>
  <option value="9.">9.</option>
  <option value="10.">10.</option>
  <option value="11.">11.</option>
  <option value="12.">12.</option>
  <option value="13.">13.</option>
  <option value="14.">14.</option>
  <option value="15.">15.</option>
  <option value="16.">16.</option>
  <option value="17.">17.</option>
  <option value="18.">18.</option>
  <option value="19.">19.</option>
  <option value="20.">20.</option>
  <option value="21.">21.</option>
  <option value="22.">22.</option>
  <option value="23.">23.</option>
  <option value="24.">24.</option>
  <option value="25.">25.</option>
  <option value="26.">26.</option>
  <option value="27.">27.</option>
  <option value="28.">28.</option>
  <option value="29.">29.</option>
  <option value="30.">30.</option>
  <option value="31.">31.</option>
 
 
  &nbsp;
  </select></td>
    <td width="17%"><select size="1" name="framaaned">
  <option value="januar">januar</option>
  <option value="februar">februar</option>
  <option value="marts">marts</option>
  <option value="april">april</option>
  <option value="maj">maj</option>
  <option value="juni">juni</option>
  <option value="juli">juli</option>
  <option value="august">august</option>
  <option value="september">september</option>
  <option value="oktober">oktober</option>
  <option value="november">november</option>
  <option value="december">december</option>
   

  &nbsp;
  </select></td>
    <td width="17%"><select size="1" name="fraaar">
  <option value="2003">2003</option>
  <option value="2004">2004</option>
  <option value="2005">2005</option>
  <option value="2006">2006</option>
 

  &nbsp;
  </select></td>
    <td width="17%"><select size="1" name="tildato">
  <option value="1.">1.</option>
  <option value="2.">2.</option>
  <option value="3.">3.</option>
  <option value="4.">4.</option>
  <option value="5.">5.</option>
  <option value="6.">6.</option>
  <option value="7.">7.</option>
  <option value="8.">8.</option>
  <option value="9.">9.</option>
  <option value="10.">10.</option>
  <option value="11.">11.</option>
  <option value="12.">12.</option>
  <option value="13.">13.</option>
  <option value="14.">14.</option>
  <option value="15.">15.</option>
  <option value="16.">16.</option>
  <option value="17.">17.</option>
  <option value="18.">18.</option>
  <option value="19.">19.</option>
  <option value="20.">20.</option>
  <option value="21.">21.</option>
  <option value="22.">22.</option>
  <option value="23.">23.</option>
  <option value="24.">24.</option>
  <option value="25.">25.</option>
  <option value="26.">26.</option>
  <option value="27.">27.</option>
  <option value="28.">28.</option>
  <option value="29.">29.</option>
  <option value="30.">30.</option>
  <option value="31.">31.</option>
 
 
  &nbsp;
  </select></td>
    <td width="16%"><select size="1" name="tilmaaned">
  <option value="januar">januar</option>
  <option value="februar">februar</option>
  <option value="marts">marts</option>
  <option value="april">april</option>
  <option value="maj">maj</option>
  <option value="juni">juni</option>
  <option value="juli">juli</option>
  <option value="august">august</option>
  <option value="september">september</option>
  <option value="oktober">oktober</option>
  <option value="november">november</option>
  <option value="december">december</option>
   

  &nbsp;
  </select></td>
    <td width="16%"><select size="1" name="tilaar">
  <option value="2003">2003</option>
  <option value="2004">2004</option>
  <option value="2005">2005</option>
  <option value="2006">2006</option>
 

  &nbsp;
  </select></td>
  </tr>
</table>

    <p>&nbsp;</p>
  <p><input type="submit" value="Send" name="retter"></p>
</form>


Hvordan ændrer jeg min asp så der KUN hentes indenfor den angivne dato ?

asp'en herunder henter fra alle i reparb.
Mit datofelt i db'en hedder 'dato'

<%Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=c:\websider\service.dk\db\database.mdb"
Conn.Open DSN
set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM database where tekniker='"&("Michael Nielsen")&"'")
usg=objRS("arbusgmic")
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\comgrosreg.mdb"
Conn.Open DSN
set objRS = Conn.Execute ("SELECT sum(arb) as arbcommic FROM reparationer where tekniker='"&("Michael Nielsen")&"'")
com=objRS("arbcommic")
micarb=usg+com
response.write  Round(micarb)
%>
Avatar billede mm12010 Nybegynder
01. maj 2003 - 10:48 #1
Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM database where dato = #"&dindato&"# AND tekniker='"&("Michael Nielsen")&"'")
Avatar billede mini41 Nybegynder
01. maj 2003 - 11:00 #2
næh, jeg får en script error.
Avatar billede mm12010 Nybegynder
01. maj 2003 - 11:05 #3
hvilken error?
Avatar billede mini41 Nybegynder
01. maj 2003 - 11:19 #4
Fejl i linien ?

Men jeg kan ikke rigtigt se hvordan det skulle virke da 'dindato' ikke er en fast tekst som feks. 1. januar 2003 men en periode som feks. 1. januar 2003 - 31. januar 2003
Avatar billede mm12010 Nybegynder
01. maj 2003 - 11:23 #5
"SELECT sum(reparb) as arbusgmic FROM database WHERE dato BETWEEN #"&fradato&"# AND #"&tildato&"# AND tekniker='"&("Michael Nielsen")&"'"
Avatar billede mini41 Nybegynder
01. maj 2003 - 12:39 #6
Hej igen.
Det giver stadig en fejl i samme linie.

Jeg prøvede at ændre linien til en fast konstant men det virker heller ikke :(

set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM database WHERE dato BETWEEN #"&22. april 2003&"# AND #"&22. april 2003&"# AND tekniker='"&("Michael Nielsen")&"'"
)

Kan du se hvad fejlen er ?
Avatar billede mm12010 Nybegynder
01. maj 2003 - 13:06 #7
set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM database WHERE dato BETWEEN #"&22-04-2003&"# AND #"&23-04-2003&"# AND tekniker='"&("Michael Nielsen")&"'"
)
Avatar billede mini41 Nybegynder
01. maj 2003 - 14:01 #8
Nej det giver samme fejl.
Avatar billede mm12010 Nybegynder
01. maj 2003 - 14:06 #9
må jeg se fejlmeddelelsen
Avatar billede mini41 Nybegynder
01. maj 2003 - 14:29 #10
Her er fejlen

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/tekniker.asp, line 23

set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE dato BETWEEN #"&22-04-2003&"# AND #"&23-04-2003&"# AND tekniker='"&("Michael Nielsen")&"'"
-------------------------------------------------------------------------------------------------^

Den peger på & lige foran 22 :)
Avatar billede mm12010 Nybegynder
01. maj 2003 - 14:36 #11
set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE dato BETWEEN #""&22-04-2003&""# AND #""&23-04-2003&""# AND tekniker='"&("Michael Nielsen")&"'"
Avatar billede mini41 Nybegynder
01. maj 2003 - 14:42 #12
Ny fejl,
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression 'dato BETWEEN #[&22-04-2003&]# AND #[&23-04-2003&]# AND tekniker='Michael Nielsen'.
Avatar billede mm12010 Nybegynder
01. maj 2003 - 14:58 #13
set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE dato BETWEEN #22-04-2003# AND #23-04-2003# AND tekniker='"&("Michael Nielsen")&"'"
Avatar billede mini41 Nybegynder
01. maj 2003 - 15:08 #14
Nu får jeg ingen fejl mere :)

Men ! jeg har et mindre problem:

Min dato syntax er feks 23. april 2003 og ikke 23-04-2003, jeg prøvede at rette det men så får jeg fejl.

Er det ikke muligt at bruge den systax ?
Avatar billede mm12010 Nybegynder
01. maj 2003 - 15:16 #15
jo, så skal du ændre dit datofelt i databasen til at have 'Langt datoformat'
Avatar billede mini41 Nybegynder
01. maj 2003 - 15:20 #16
er det nok at ændre db'en, skal der ikke rettes i asp'en ?
Avatar billede mini41 Nybegynder
01. maj 2003 - 15:28 #17
hmm, jeg kan ikke ændre dato feltet i db'en uden at slette feltet
Avatar billede mm12010 Nybegynder
01. maj 2003 - 16:03 #18
åbn tabel >> tabeldesign >> klik i datatype-kollonen ud for dit datofelt - så kan du nederst i feltegenskaber vælge format
Avatar billede mini41 Nybegynder
01. maj 2003 - 16:08 #19
jeps har fundet ud af det, tusind tak for hjælpen :)

lige et tillægs spørgsmål :

Jeg bruger ROUND til at runde et tal op, men hvis tallet er 0 eller mindre får jeg en fejl.
Jeg prøvede med:
if tal<=0 then tal=1

men det kan man ikke,,hvorfor?
Avatar billede mm12010 Nybegynder
01. maj 2003 - 16:16 #20
aner det ikke koder ikke selv VB
Avatar billede mini41 Nybegynder
01. maj 2003 - 16:27 #21
haha ok, tak for hjælpen , svar for point
Avatar billede mm12010 Nybegynder
01. maj 2003 - 16:30 #22
:o)
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