Før havde jeg en dato opdelt i tre tekstfelter og nu er de lavet til et datofelt. Nu kan jeg ikke lige komme videre fra følgende:
dg=Day(Date()) md=Month(Date()) yyyy=YEAR(Date()) dato = ?
Set RS = Server.CreateObject("ADODB.Recordset") Query = "SELECT * FROM ordre order by id" RS.Open Query, Connupdate, adOpenStatic, adLockOptimistic RS.AddNew RS("kundeid") = kundeid RS("dato") = dato RS.Update RS.Close Set RS = Nothing
Jeg vil gerne bare have den til at opdatere db'en med den nye ordre med dags dato. Formatet skal derefter vises som dd-mm-åååå i stedet for åååå-mm-dd. Dags dato vil f.eks. vises som 08-08-2005 i stedet for 08-08-2005...hmm egentlig et dårligt eksempel. :-)
dg, md og yyyy er det gamle som virkede og de blev så sat sammen for at vises som en dato uden at have egenskab af det. Lidt fusket, men det tjente sit daværende formål. Jeg er ikke sikker at jeg overhovedet behøver dem længere, så jeg håber lidt på at kunne nøjes med noget i stil med " dato = Date ".
når du indsætter datoen indsætter du den i yyyy-mm-dd format Det er for at sikre der ikke bliver byttet om på måned og år Deb burde blive vist normalt når du hiver den ud hvis du har sat indstillingerne til dansk !
Det tidligere spørgsmål var i Access kategorien, og jeg har intet forstand på ASP. I Access kan problemet løses meget simpelt ved i tabellen at sætte standardværdien for nye poster til Date.
busschou --> jeg er med på formatet, men hvordan henter jeg det? Mener du for resten ikke måned og dag? nielle --> Indsætningen...som det ser ud nu får jeg ingen dato. Jeg vil gerne have dato = 2005-08-08.
i min database som er på dansk indsætter jeg i formatet yyyy-mm-dd Hvad enten jeg hiver det ud af den på en asp side Eller om jeg åbner access Så vises det i dd-mm-yyyy format Men hvis jeg beder den indsætte 04-08-2005 så indsættes det som 08-04-2005 fordi der af en og anden grund i sql overførslen altid tjekkes i formatet mm-dd-yyyy
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel.
men du kan jo lave en funktion som du bruger hver gang ved indsættelse -- Function getDate(dato) getDate = Year(dato)&"-"&Month(dato)&"-"&Day(dato) End Function -- Så kalder du jo bare ved -- dato = getDate(Now())
hvornår giver den dig det? Der er jo forskel på om du henter eller updaterer Jeg er ikke så meget inde i at updatere gennem recordset, bruger selv altid connetion til det ...såå
Jeg skal ikke hente det fra tabellen. Jeg skal have den til at hente systemets dags dato og derefter gemme denne i tabellen. Det er dato variablen der volder mig problemer.
hvis du tager min funktion burde din opdatering kunne køres som ---- Set RS = Server.CreateObject("ADODB.Recordset") Query = "SELECT * FROM ordre order by id" RS.Open Query, Connupdate, adOpenStatic, adLockOptimistic RS.AddNew RS("kundeid") = kundeid RS("dato") = getDate(Now()) RS.Update RS.Close Set RS = Nothing
jeg har set en del diskutioner omkring det herinde, det er noget med at access/sql delen opfatter det forskellet hvis det er en dato eller en streng, altså dato = Date dato = "08-08-2005" Så vil "Insert into tabel values (#"&dato&"#)" blive tolket forskelligt, og det er så der man risikerer at der byttes om på dag og måned Fx sker det hvis man tager datoen som input fra en form uden at typecaste den med CDate Derfor har jeg selv gjort det til en vane med en funktion som omvender datoen til yyyy-mm-dd format hvorved man altid er sikker på at den opfattes som ønsket :o)
Jeg vil helst beholde recordsettet, da det er gennemgående for resten af ASP-siderne, og jeg vil helst ikke ændre for meget på det grundlæggende som egentlig virker, men bare skal tilpasses med et minimum af ændringer.
funktionen kan stå hvor som helst på siden, og kan evt gemmes i en ekstern funktions fil som du kan includere på alle sider, så er den tilgængelig på alle sider hvor du har behov for den Du skal bare huske at have # omkring som jeg glemte
nielle >> ok har jeg så ingen ide om, bruger selv connection, men det er også fordi jeg ikke har så vildt mange brugere at det gør noget med den smule kø der kan opstå
Jeg bruger recordsettet, da jeg sender flere data videre til udskriv.asp, hvor jeg så udskriver ordren. Jeg ved endnu ikke hvordan visningen af datoformatet er endnu.
Function getDate(dato) getDate = Year(dato)&"-"&Month(dato)&"-"&Day(dato) End Function
Set RS = Server.CreateObject("ADODB.Recordset") Query = "SELECT * FROM ordre order by id" RS.Open Query, Connupdate, adOpenStatic, adLockOptimistic RS.AddNew RS("kundeid") = kundeid RS("dato") = getDate(Now()) RS.Update RS.Close Set RS = Nothing
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en opdaterbar forespørgsel.
i princippet behøves du ikke gøre det i funktionen men her RS("dato") = "#getDate(Now())#" Det vil sige Jeg har ikke erfaring med at gøre det på den måde, men normalt skal de omkring og jeg tror det må være sådan for det svarer til RS("dato") = "#2005-08-08#"
Hmm...virker desværre heller ikke og giver samme fejl. Småændringer ved det resulterer i en syntaksfejl. Jeg vil sove på det og se på det med friske øjne imorgen på et tidspunkt.
dg=Day(Date()) md=Month(Date()) yyyy=YEAR(Date()) dato = yyyy&"-"&md&"-"&dg
Dette virker perfekt og lige som jeg vil have det. Det var selvfølgelig ikke der hvor fejlen lå, men i mit bibliotek på den lokale webserver. Jeg havde glemt at give skriveadgang...flot! :-) Dette skyldes at jeg arbejder med det på en anden computer. Det er så tåbeligt, når det er noget så banalt og grundlæggende, som bare skal være iorden.
busschou --> jeg har benyttet dit forslag, så smid et svar. :-)
nielle --> tak for de mange gode forslag og redegørelser.
Takker for tak. Det er altid rart få at vide at ens hjælp værdsættes :^)
Synes godt om
Ny brugerNybegynder
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.