Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 12:18 Der er 68 kommentarer og
1 løsning

Gemme en dato i Access

Hvad er den bedste måde at gennem dato i access, således at det er let
at lave et select staement hvis man f.eks vil se hvor mange der er logget ind inden for en specific dato.

Lige nu gemmer jeg dato således.

2004-05-14

Takker
Avatar billede fennec Nybegynder
14. juni 2004 - 12:22 #1
Gem det i datatypen "Dato og klokkeslæt". Så kan du gøre brug af de indbygget dato funktioner i Access.
Avatar billede cool_casper Nybegynder
14. juni 2004 - 12:25 #2
Enig, det er helt klart det nemmeste. Hvis du så også skal indsætte via SQL kan du f.eks. bruge "INSERT INTO tabel(datofelt) VALUES(Now())
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 12:26 #3
Er nedenstående så korrekt ?
                                        var todayDate = new Date();           
                                        var dateToSQL = "";
                                        var mm = "";
                                                                               
                                        if(todayDate.getMonth()<9){
                                            mm= "0" + todayDate.getMonth();
                                        }
                                        dateToSQL = todayDate.getYear()+"-"+mm+"-"+todayDate.getDate()+" "+todayDate.getHours()+":"+todayDate.getMinutes()+":"+todayDate.getSeconds();
Avatar billede fennec Nybegynder
14. juni 2004 - 12:30 #4
Access plejer at ville tage formatet "dd-mm-yyyy hh:mm:ss" eller "yyyymmdd hh:mm:ss" så du skal have byttet om på rækkefølgen.
Avatar billede krogstrup Nybegynder
14. juni 2004 - 12:31 #5
du kan også konvertere dine datoer til et UNIX timestamp (antal sekunder siden 1. jan 1970, mener jeg)

Således gemmer du rene tal i din database og kan SUPER nemt sende forespørgler på f.eks. datoer før og efter en given dato.

Jeg bruger det selv og er MEGET tilfreds med det.

Her er 2 funktioner til at konvertere normal dato til UNIX stamp og den anden vej igen:

function udate(oldDate)
    'converts date to integer - unix time stamp
    udate = datediff("s", "01-01-1970 00:00:00", oldDate)
end function

function unudate(intTimeStamp)
    'converts integer to date - unix time stamp
    unudate = dateadd("s", intTimeStamp, "01-01-1970 00:00:00")
end function


bruges således:

stamp = udate(now)
unStamp = unudate(stamp)
Avatar billede fennec Nybegynder
14. juni 2004 - 12:33 #6
Også skal du bruge # i stedet for ' når du selecter/indsætter (ikke altid nødvendig ved indsættelse)

"INSERT INTO tabel(datofelt) VALUES(#31-12-2004 23:59:59#)"

men som cool_casper også siger kan du bruge Access now() funktion, hvis det er det aktuelle tidspunkt der skal indsættes.
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 12:37 #7
okay

Nu ser min insert string sådan ud, det skulle være rigtigt ik?

VALUES ('test',#14-05-2004 12:37:18#)

Hvordan selecter jeg så alle inden for en given dato ?
Avatar billede fennec Nybegynder
14. juni 2004 - 12:40 #8
"select * from xxxx where datofelt between #01-01-2004# and #31-12-2004#"
Avatar billede fennec Nybegynder
14. juni 2004 - 12:44 #9
eller:

"select * from xxxx where year(datofelt)=2004 and month(datofelt)=6 and day(datofelt)=14"

ved at fjerne day() kan du vælge alle i en måned og ved at fjerne month() kan du vælge alle inden for et år.
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 12:48 #10
hvad hvis man så ville have alle iden for en uge? er der nogle smart måde til det
Avatar billede fennec Nybegynder
14. juni 2004 - 12:54 #11
Ikke hvad jeg kender til. Når det handler om ugenumre er der forskellige regler for hvornår den første uge i året er.

Så der skal du bruge between metoden samme med dateadd(). Du kende den første dag i ugen også lægge 7 dage til.

set rs = conn.execute("select * from xxxx where datofelt between #"& FirstDayOfWeek &"# and #"& dateadd("d",7,FirstDayOfWeek) &"#")
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 12:56 #12
Den er jeg ikke helt med på..... Jeg bruger nemli jScript......
Avatar billede fennec Nybegynder
14. juni 2004 - 13:07 #13
Min fejl....

Du skal have lave to Date() objekter. En på den første dag i ugen og en på sidste dag i ugen.

var firstdate = new Date(2004,5,14)
var lastdate = new Date(2004,5,14+7)

Husk at Access måneder løber fra 1-12 mens JScript løber fra 0-11.
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 13:10 #14
Heheh ok....Men hvordan pokker sætter man det hele sammen....Jeg er godt nok blank i det her dato haløjsa..??
Avatar billede fennec Nybegynder
14. juni 2004 - 13:16 #15
"select * from xxxx where datofelt between #"+ firstdate.getDay()+"-"+ firstdate.getMonth()+1 +"-"+ firstdate.getYear() +"# and #"+ lastdate.getDay() +"-"+ lastdate.getMonth()+1 +"-"+ lastdate.getYear() +"#"
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 13:20 #16
Nu melder den fejl:

Syntax error in date in query expression 'userdate between #1-51-2004# and #1-51-2004#'.
Avatar billede fennec Nybegynder
14. juni 2004 - 13:41 #17
Det er der ikke noget at sige til. Der er hvis ikke en dato der hedder "1-51-2004". Vil denne så regne måned rigtig ud???

"select * from xxxx where datofelt between #"+ firstdate.getDay()+"-"+ (firstdate.getMonth()+1) +"-"+ firstdate.getYear() +"# and #"+ lastdate.getDay() +"-"+ (lastdate.getMonth()+1) +"-"+ lastdate.getYear() +"#"
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 13:57 #18
Hmmmm, ja det er klart. Men havde bare taget din:

var firstdate = new Date(2004,5,14);
var lastdate = new Date(2004,5,14+7);

Anyway den måde jeg f.eks. udtrækker alle fremkomster på inden for en giver peroiode er der ikke særligt smart?.
Hvis nu last+7 overskrider f.eks 31 er der da et problem eller hvis jeg vil finde hvor mange der var i sidste uge og den lige pludslig går i minus, hvad gør man så

Kan ikke rigtigt finde hoved eller hale i det her. Dammm det er da noget træls noget sådan noget dato/tid skidt.
Avatar billede fennec Nybegynder
14. juni 2004 - 14:05 #19
Jeg troede Date() funktionen selv fandt ud af det. Kan du ikke teste det???

var mydate = new Date(2004,0,0); // giver vist 31-12-2003
var mydate = new Date(2004,0,32); // giver vist 01-02-2004

Ellers er det noget skod. Det er betydlig lettere i VBScript hvor vi har dateadd() og dateserial() funktionerne.
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 14:09 #20
Den giver

Wed Dec 31 00:00:00 UTC+0100 2003
Sun Feb 1 00:00:00 UTC+0100 2004
Avatar billede fennec Nybegynder
14. juni 2004 - 14:16 #21
Så virker det jo rigtigt.

du kan så gå 100 dage frem / tilbage fra en dato ved at:

var mydate = new Date(2004,5,14+100);
var mydate = new Date(2004,5,14-100);
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 14:29 #22
Ja, men hvorfor udskriver den så ikke nogle username fra sidste uge, selvom dato'er findes i db?

Sådan ser koden ud:

var firstdate = new Date(2004,5,14);
var lastdate = new Date(2004,5,14-7);                   
rs = conn.execute("select * from users where userdate between #"+ firstdate.getDay()+"-"+ (firstdate.getMonth()+1) +"-"+ firstdate.getYear() +"# and #"+ lastdate.getDay() +"-"+ (lastdate.getMonth()+1) +"-"+ lastdate.getYear() +"#");

Response.Write('<table width="100%"  border="0" cellspacing="0" cellpadding="0">');
while (!rs.eof){
    Response.Write("<tr>");
    Response.Write("<td>"+rs("username")+"</td>");                                   
    Response.Write("</tr>");
    rs.movenext();
}
Response.Write('</tr></table>');
Avatar billede fennec Nybegynder
14. juni 2004 - 14:38 #23
Hvad er datoerne i databasen. Er de mellem "14-06-2004" og "07-06-2004"??
Det er ikke sådan, at det er gamle datoer, så de er imellem "14-05-2004" og "07-05-2004"??
Avatar billede cypherdenmark Nybegynder
14. juni 2004 - 20:27 #24
Jeg kan simpelhen ikke få den til at udtrække det rigtige.

Dele af min log fil ser såldes sådan ud, når jeg laver en response.write på record sættet:

Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Sat Jun 12 19:00:48 UTC+0200 2004
Sat Jun 12 19:00:48 UTC+0200 2004
Sat Jun 12 19:00:48 UTC+0200 2004
Thu Jun 10 19:03:07 UTC+0200 2004
Thu Jun 10 19:03:07 UTC+0200 2004
Thu Jun 10 19:03:07 UTC+0200 2004

Hvis jeg så laver et select statement:

select * from logtest where logindate between #14-6-2004# and #10-6-2004#

Ja så selecter den kun dem her:

Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004
Mon Jun 14 19:03:07 UTC+0200 2004

Hvordan kan det lade sig gøre?

Jeg afsætter lige nogle flere point, for der her skal bare løses. Tak for din hjælp så langt fennec :-)
Avatar billede fennec Nybegynder
15. juni 2004 - 08:09 #25
Det kunne være fordi den opfatter 14-06-2004 rigtigt, men 10-06-2004 som den 6 oktober. Kan ikke huske om Access vil tage det "internationale" datoformat. Har laven en lille funk som skulle omdanner datoen til yyyymmdd format.

function SQLDate(myDate)
{
  var returval
  returval = getYear(myDate).toString()
  if ((getMonth(myDate)+1) < 10)
    returval += "0"+ (getMonth(myDate)+1).toString
  else
    returval += ""+ (getMonth(myDate)+1).toString
  if getDay(myDate) < 10
    returval += "0"+ (getDay(myDate)+1).toString
  else
    returval += ""+ (getDay(myDate)+1).toString
  return returval
}

rs = conn.execute("select * from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#");
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 09:55 #26
hmm det var den ikke glad for. Den siger:

Object expected, Line 99

Line99:
returval = getYear(myDate).toString()

Er det pga. af jscript:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsoriJScript.asp
Avatar billede fennec Nybegynder
15. juni 2004 - 10:21 #27
prøv at fjerne .toString() fra dem alle.
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 10:30 #28
Hmmm samme fejl stadigvæk....... :-)
Avatar billede fennec Nybegynder
15. juni 2004 - 10:35 #29
og du har stadig...

var firstdate = new Date(2004,5,14);
var lastdate = new Date(2004,5,14-7);

... med i koden?? Den mangler nemlig et objekt.
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 10:47 #30
Ja, det hele ser sådan ud:

var firstdate = new Date(2004,6,14);
var lastdate = new Date(2004,6,14-7);   

function SQLDate(myDate)
{
  var returval
  returval = getYear(myDate);
  if ((getMonth(myDate)+1) < 10)
    returval += "0"+ (getMonth(myDate)+1);
  else
    returval += ""+ (getMonth(myDate)+1);
  if (getDay(myDate) < 10)
    returval += "0"+ (getDay(myDate)+1);
  else
    returval += ""+ (getDay(myDate)+1);
  return returval
}

Connect();
rs = conn.execute("select * from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#");
Avatar billede fennec Nybegynder
15. juni 2004 - 10:54 #31
hvad brokker den sig så over..... Det ser da rigtigt ud.
Hvad siger den så til dette???

var firstdate = new Date(2004,6,14);
var lastdate = new Date(2004,6,14-7);   

  var returval
  returval = getYear(firstdate);
  if ((getMonth(firstdate)+1) < 10)
    returval += "0"+ (getMonth(firstdate)+1);
  else
    returval += ""+ (getMonth(firstdate)+1);
  if (getDay(firstdate) < 10)
    returval += "0"+ (getDay(firstdate)+1);
  else
    returval += ""+ (getDay(firstdate)+1);

  var returval2
  returval2 = getYear(lastdate);
  if ((getMonth(lastdate)+1) < 10)
    returval2 += "0"+ (getMonth(lastdate)+1);
  else
    returval2 += ""+ (getMonth(lastdate)+1);
  if (getDay(lastdate) < 10)
    returval2 += "0"+ (getDay(lastdate)+1);
  else
    returval2 += ""+ (getDay(lastdate)+1);

Connect();
rs = conn.execute("select * from users where userdate between #"+ returval +"# and #"+ returval2 +"#");
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 11:12 #32
Den melder stadigvæk samme fejl....

Kan det være fordi det er et andet dateobj i jscript:

http://msdn.microsoft.com/library/en-us/script56/html/js56jsobjdate.asp?frame=true
Avatar billede fennec Nybegynder
15. juni 2004 - 11:17 #33
Det en mig der er et fjols :o)

var firstdate = new Date(2004,6,14);
var lastdate = new Date(2004,6,14-7);   

function SQLDate(myDate)
{
  var returval
  returval = myDate.getYear();
  if (myDate.getMonth()+1) < 10)
    returval += "0"+ (myDate.getMonth()+1);
  else
    returval += ""+ (myDate.getMonth()+1);
  if (myDate.getDay() < 10)
    returval += "0"+ (myDat.egetDay());
  else
    returval += ""+ (myDate.getDay());
  return returval
}

Connect();
rs = conn.execute("select * from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#");

Så skulle det virke.....
Avatar billede fennec Nybegynder
15. juni 2004 - 11:18 #34
også kan jeg ikke stave til "er" længere...
Avatar billede terry Ekspert
15. juni 2004 - 11:18 #35
to INSERT a date into Access you use ''
to SELECT you use ##

So
INSERT into YourTable (DateField) Values ('2004-06-15')
SELECT * FROM YourTable WHERE DateField = #2004-06-15#

should work. But!
SELECT * FROM YourTable WHERE DateField = '2004-06-15'

may also work!
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 13:21 #36
Jeg har ændre lidt på din function, den manglede en -

Check lige sql streng hvofor laver den om på datoen (day), jeg har jo sat firstdate og lastdate til noget andet.

//Coden som der ser ud nu:

var firstdate = new Date(2004,5,14);
var lastdate = new Date(2004,5,14-7);   

function SQLDate(myDate)
{
  var returval
  returval = myDate.getYear()+"-";                     

  if ( (myDate.getMonth()+1) < 10)
    returval += "0"+ (myDate.getMonth()+1)+"-";
  else
    returval += ""+ (myDate.getMonth()+1)+"-";
  if (myDate.getDay() < 10)
    returval += "0"+ (myDate.getDay());
  else
    returval += ""+ (myDate.getDay());
  return returval
}

Connect();
var str = "select * from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#";   
rs = conn.execute(str);
Response.Write(str+"<br>");


//Sql streng:

select * from users where userdate between #2004-06-01# and #2004-06-01#
Avatar billede fennec Nybegynder
15. juni 2004 - 13:35 #37
Meget mærkeligt.
Prøv at skrive datoerne ud inden SQL'en samt i funktionen, for at se hvornår der bliver lavet om på datoerne....
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 13:48 #38
Sådan ser det ud:

i starten af SQLdate funktion Mon Jun 14 00:00:00 UTC+0200 2004
lige inden retur 2004-06-01
i starten af SQLdate funktion Mon Jun 7 00:00:00 UTC+0200 2004
lige inden retur 2004-06-01

Så date function laver da vist noget om :-)

Nogle ide ?
Avatar billede fennec Nybegynder
15. juni 2004 - 13:51 #39
prøv at skrive år, måned og dag ud for myDate i funktionen.
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 14:03 #40
sådan ser det ud nu:

i starten af SQLdate funktion Mon Jun 14 00:00:00 UTC+0200 2004
i myDate.getYear() == 2004
i myDate.GetMonth()+1 == 51
i myDate.getDay() == 1
lige inden retur 2004-06-01

i starten af SQLdate funktion Mon Jun 7 00:00:00 UTC+0200 2004
i myDate.getYear() == 2004
i myDate.GetMonth()+1 == 51
i myDate.getDay() == 1
lige inden retur 2004-06-01
Avatar billede fennec Nybegynder
15. juni 2004 - 14:14 #41
Min fejl. Det hedder getDate() i stedet for getDay().

function SQLDate(myDate)
{
  var returval
  returval = myDate.getYear()+"-";

  if ( (myDate.getMonth()+1) < 10)
    returval += "0"+ (myDate.getMonth()+1)+"-";
  else
    returval += ""+ (myDate.getMonth()+1)+"-";
  if (myDate.getDate() < 10)
    returval += "0"+ (myDate.getDate());
  else
    returval += ""+ (myDate.getDate());
  return returval;
}
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 14:23 #42
Jubiii så virker det næsten, men kan se at den ikke tager den 14 med, altså de datoer der indeholder datoen den 14.

Kan man gøre noget med det ?
Avatar billede fennec Nybegynder
15. juni 2004 - 14:35 #43
lægge en dag til. Også burde vi overholde navnereglen, så firstdate er den førstedate.

var firstdate = new Date(2004,5,14-7);
var lastdate = new Date(2004,5,14+1);
Avatar billede fennec Nybegynder
15. juni 2004 - 14:38 #44
Har du timer:min:sekunder med på dine datoer i databasen??
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 14:44 #45
Så virker det.......... :-)

Til timer:min:sekunder, ja det har jeg :-)

Lige en sidste så, hvordan ser et select statement så ud for en dag (altså trække alle ud fra en dag) ?


Jeg smækker lige de sidste 50 point på, for du har bare været super til det her. !!!
Avatar billede fennec Nybegynder
15. juni 2004 - 15:00 #46
så burde vi også have dem på i selecten. Det er også derfor de ikke kommer med på den sidste dag. Da den så antager kl 00:00:00

var firstdate = new Date(2004,5,14-7,0,0,0); //yyyy,mm,dd,hh,nn,ss
var lastdate = new Date(2004,5,14,23,59,59); //yyyy,mm,dd,hh,nn,ss

function SQLDate(myDate)
{
  var returval
  returval = myDate.getYear()+"-";

  if ( (myDate.getMonth()+1) < 10)
    returval += "0"+ (myDate.getMonth()+1)+"-";
  else
    returval += ""+ (myDate.getMonth()+1)+"-";

  if (myDate.getDate() < 10)
    returval += "0"+ (myDate.getDate())+" ";
  else
    returval += ""+ (myDate.getDate())+" ";

  if (myDate.getHours() < 10)
    returval += "0"+ (myDate.getHours())+":";
  else
    returval += ""+ (myDate.getHours())+":";

  if (myDate.getMinutes() < 10)
    returval += "0"+ (myDate.getMinutes())+":";
  else
    returval += ""+ (myDate.getMinutes())+":";

  if (myDate.getSeconds() < 10)
    returval += "0"+ (myDate.getSeconds());
  else
    returval += ""+ (myDate.getSeconds());
  return returval;
}

også kan den samme select bruges.

For alle på en dag:

var str = "select * from users where year(userdate)="+ firstdate.getYear() +" and month(userdate)="+ (firstdate.getMonth()+1) +" and day(userdate)="+ firstdate.getDate();
Avatar billede fennec Nybegynder
15. juni 2004 - 15:02 #47
eller med between:

var firstdate = new Date(2004,5,14,0,0,0); //yyyy,mm,dd,hh,nn,ss
var lastdate = new Date(2004,5,14,23,59,59); //yyyy,mm,dd,hh,nn,ss

samme funktion og select.
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 15:09 #48
HELT KANON,

Dagens absolut sidste, hvordan sætter jeg lige en tæller på de forskellige select statemets (between en date og dagen idag)
Avatar billede fennec Nybegynder
15. juni 2004 - 15:15 #49
hvad mener du???
Vil du tælle hvor mange resultater der er???
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 15:20 #50
Ja, henholdsvis for en dag og for en uge (de select statement vi har lavet her), det er noget med count men kan ikke lige få flettet dem ind
Avatar billede fennec Nybegynder
15. juni 2004 - 15:26 #51
Det nemmeste er at lave to select, en som finder antalet og en som finder resultaterne. Ellers skal vi til at lave noget "group by". Ellers kan man åbne et recordset på en bestemt måde, også kan man tælle antallet af resultaer, men det ved jeg ikke hvordan man gør i JScript.

Her har du SQL'en til at tælle antalet med:

var strAmount = "select count(*) as amount from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#";
Avatar billede fennec Nybegynder
15. juni 2004 - 15:31 #52
med group by:

var str = "select count(users.id), users.* from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"# group by id, name, lastname....(alle felter i users)...";   
rs = conn.execute(str);
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 15:41 #53
nu melder den fejl

Cannot group on fields selected with '*' (users).
Avatar billede fennec Nybegynder
15. juni 2004 - 15:44 #54
så skal du skrive alle felterne:

var str = "select count(users.id), id, name,lastname..... from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"# group by id, name, lastname....(samme liste som du selecter)...";   
rs = conn.execute(str);
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 15:50 #55
arhh ok, men hvordan får man så denne count værdi udskrevet?
Avatar billede fennec Nybegynder
15. juni 2004 - 15:55 #56
enten fordi den er den første (0) på listen, ellers brug alias:

"select count(users.id) as antal, ...."

kan så hentes med rs(0) eller rs("antal")
Avatar billede cypherdenmark Nybegynder
15. juni 2004 - 16:24 #57
rs("antal") er bare tom når den udskrives. Jeg har tilføjes as antal ??
Avatar billede cypherdenmark Nybegynder
16. juni 2004 - 11:44 #58
Hey....

Havde du ide til hvorfor count ikke udskrives inden jeg lige skyder point afsted til dig (fennec)
Avatar billede fennec Nybegynder
16. juni 2004 - 11:48 #59
Havde ikke set din post :(

Står der noget i de andre felter???
Avatar billede cypherdenmark Nybegynder
16. juni 2004 - 11:54 #60
ja altså udskrives på nær count......
Avatar billede fennec Nybegynder
16. juni 2004 - 12:11 #61
er antal det første af elementerne du skriver ud??
Avatar billede cypherdenmark Nybegynder
16. juni 2004 - 12:18 #62
udskriver count uden for while løkken, altså

Response.Write("Antallet af logins "+rs("antal")+"<br><br>");
Avatar billede fennec Nybegynder
16. juni 2004 - 12:22 #63
ellers prøv med denne:

var str = "select (select count(id) from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#) as antal, id, name,lastname..... from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"# group by id, name, lastname....(samme liste som du selecter)...";
Avatar billede cypherdenmark Nybegynder
16. juni 2004 - 12:29 #64
Nej det ville den heller ikke :-(
Avatar billede fennec Nybegynder
16. juni 2004 - 12:31 #65
hvordan ser din SQL ud nu?? Det er nemmere at se/tilpasse, nå jeg kan se hvilke felter du selecter.
Avatar billede cypherdenmark Nybegynder
16. juni 2004 - 12:56 #66
var str = "select (select count(id) from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#) as antal, id, username,userdate from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"# group by id, username, userdate";
Avatar billede fennec Nybegynder
16. juni 2004 - 13:42 #67
Den du har der virker hos mig. Nu kører jeg så ikke Access, så det kan være derfor. Du bliver nok nød til at lave det over to select.

var str = "select count(*) as antal from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#";
rs = conn.execute(str);
Response.Write(rs("antal")+"<br>");

var str = "select * as antal from users where userdate between #"+ SQLDate(firstdate) +"# and #"+ SQLDate(lastdate) +"#";
rs = conn.execute(str);
*** Udskriv alle resultaterne ***
Avatar billede cypherdenmark Nybegynder
16. juni 2004 - 14:14 #68
Ja det var vist løsningen........

TUSIND TAK FOR DIN HJÆLP.......KUNNE IKKE VÆRE BEDRE.....POINT ER VELFORTJENT.....

FORTSAT GOD DAG TIL DIG....... :-)
Avatar billede fennec Nybegynder
16. juni 2004 - 14:21 #69
I lige måde :o)

Og tak for point.
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