Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
?HTML-ben a Flash átméretezés torzul
Eredeti mezőnevek lekérdezése
?Input mezőből visszakapott adat probléma
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Where feltételben dátum használata

»

Where feltételben dátum használata

nyitotta: xapheam, idő: 2010.07.29., moderátor: Árnyék
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Adatbázisok » Microsoft Access

Sorrend:
Időzóna:
Blokkméret:
Sziasztok! Ismét egy kérdéssel fordulok hozzátok. Van egy access adatbázis, melyből adatokat akarok lekérni vba kód segítségével.
A következő select jól működik:
.CommandText = "SELECT kapocs.varos FROM kapocs where kapocs.babaszul=date()" feltéve,ha van aznapi dátum

viszont nekem az kellene, hogy paraméterként adhassam át, így valahogy:

feltetel = " where kapocs.szulido=" & Date()

majd a select:

.CommandText = "SELECT kapocs.varos FROM kapocs " & feltetel


Ekkor a köv hibát kapom:

Szintaktikai hiba a számban a következő lekérdezéskifejezésben: 'kapocs.szulido=2010.07.29.'-

Miért lehet ez?
A válasz egyszerű: mert a bemásolt részlet szintaktikailag hibás. Akkor enyémek a pontok, igaz?

Ja, az access súgóban elég szépen le van írva, hogy miként kell a dátum paramétereket megadni:

A feltétel argumentumban a dátumot akkor is amerikai formátumban kell megadni, ha nem az amerikai verziójú Microsoft® Jet adatbázis-kezelőt használjuk. 1996. május 10. például a magyar írásmódban 96.5.10, az amerikai írásmódban pedig 5/10/96. A dátumot az alábbi példáknak megfelelően kettős keresztek (#) közé kell írni.

Egy magyar adatbázis 1996. május 10-i rekordjait a következő SQL-utasítással kereshetjük meg:

SELECT *

FROM Rendelések

WHERE Szállítás_dátuma = #96.5.10#;


A DateValue függvényt is használhatjuk, amely felismeri a Microsoft Windows® nemzetközi beállításait. Amerikai beállításnál például ezt a kódolást használjuk:

SELECT *

FROM Rendelések

WHERE Szállítás_dátuma = DateValue('5/10/96');


Magyar beállításnál viszont ezt használjuk:

SELECT *

FROM Rendelések

WHERE Szállítás_dátuma = DateValue('96.5.10.');



Ezért jó manualt olvasgatni...
És hogy ne kelljen a formájával foglalkoznod és nyelvfüggetlen legyen:

1. nem a datevalue-t használod, hanem a dataserialt:
feltetel = " where kapocs.szulido=dateserial(" & year(datumod) & ";" & month(datumod) & ";" & day(datumod) & ")"
csak itt a ";" és "," eltérés kavarhat be.

2. Így inkább:
feltetel = " where kapocs.szulido=" & datumod*1
és számmá alakul, a számot pedig egyformán kezeli (kivétel, ha óra/perc/mp is van benne, mert akkor a tizedes elválasztó okozhat gondot )


---

Árnyék:
Elég érdekes a súgó (bár erről nem te tehetsz)
A feltétel argumentumban a dátumot akkor is amerikai formátumban kell megadni, ha nem az amerikai verziójú

Egy magyar adatbázis 1996. május 10-i rekordjait a következő SQL-utasítással kereshetjük meg:
....
WHERE Szállítás_dátuma = #96.5.10#;


Tudomásom szerint "amerikában" nem az éé.h.n formát használják.

xapheam :
A súgó egyik feléből következhet a válasz:

feltetel = "where datum=#" & Format(d, "mm""/""dd""/""yy") & "#"
Sajnos nem tudom a pontokat megosztani, pedig mindkettőtöknek jogosan jár... Micu megoldását nagyon gyorsan tudtam felhasználni, ez döntött a pont kiosztásnál...

Árnyék: sorry, tényleg jó volt a megoldás, és +infot adtál a korábbi ismereteimhez, legközelebb Neked adom ilyen esetben a pontot.

Jah: tökéletesen működik a dátum kezelése :D Mindjárt kérdezek is újra :D
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Hack100
»Riha60
»Akhiles50
»mrchandra50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen