[ pskibola @ 12.11.2010. 09:35 ] @
Kako da pretvorim datum formata dd.mm.yyyy u format mm/dd/yyyy ?
Raspored dana i mjeseca sam riješio tako da dd.mm.yyyy datum pretvorim u string
i funkcijom dobijem string mm/dd/yyyy , ali kad string pretvaram u datum izbaci mi datum formata mm.dd.yyyy,
a ja želim datum formata mm/dd/yyyy
[ srdjan_m @ 12.11.2010. 10:41 ] @
Probaj da iskoristiš ovaj primer

Public Function obrniDatum(ByVal datum As String) As String
On Error GoTo greska
Dim dan As String
Dim mesec As String
Dim godina As String

Dim datumdate As Date
datumdate = CDate(datum)
dan = Day(datumdate)
mesec = Month(datumdate)
godina = Year(datumdate)

Dim noviDatum As String
noviDatum = mesec & "." & dan & "." & godina

obrniDatum = noviDatum
GoTo kraj
greska: MsgBox Err.Description
kraj:
End Function
[ vuchko.vuchko @ 12.11.2010. 11:44 ] @
Nisam te bas najbolje razumio, a vjerujem da ni ti ne bi razumio kad bi procitao jos jednom , salim se

Evo rjesenje:

Code:
Private Sub Command1_Click()
Dim STRDatum As String
Dim DATEDatum As Date

STRDatum = "22.05.2010"

STRDatum = Replace(STRDatum, ".", "/")

DATEDatum = Format(STRDatum, "mm/dd/yyyy")

MsgBox DATEDatum
End Sub
[ loto17 @ 12.11.2010. 12:20 ] @
* pskibola
Zasto jednostavno ne promenis nacin prikazivanja datuma u Contol Panel\Regional and Language Options, podesis Date separator na: / i zavrsis posao!!!

[ pskibola @ 12.11.2010. 13:32 ] @
Vucho, probao sam, ali nisam riješio problem, naime u bazi imam polje datum u formatu 24.6.2010
Kad filtriram sql upit po datumu u access bazi moraš datum pisati u formatu 6/24/2010
npr. SELECT ........ WHERE DATUM.DATUM=#6/24/2010# ovo filtriranje radi, ali sql ne prihvača datum 24.6.2010
znači moram u kodu promjeniti format datuma 24.6.2010 konvertirati u 6/24/2010
[ vuchko.vuchko @ 12.11.2010. 14:01 ] @
Pa ne razumijem u cemu je onda problem uradis ovako...

Code:
Dim STRDatum As String
Dim DATEDatum As Date

STRDatum = TvojePoljeDatumaIzBaze.Value ' Ili text zavisi kako  dohvacas datum iz polja u bazi

STRDatum = Replace(STRDatum, ".", "/")

DATEDatum = Format(STRDatum, "mm/dd/yyyy")

 SELECT ........ WHERE DATUM.DATUM="#" & DATEDatum & "#"


* posto sam ponovo procitao mislim da razumijem sad problem...pa u bazi ti je datum 24.6.2010 to je u stvari text???

jesi probao upit vrsiti ovako:
Code:
SELECT ........ WHERE DATUM.DATUM='24.6.2010' 
[ pskibola @ 12.11.2010. 14:37 ] @
Pazi u bazi mi je 6.11.2010 datum, a ne tekst. sql upit radi samo sa datumom ...WHERE ((datumnarudbe.datumnarudbe)=#11/6/2010#);"
i sada ja datum iz baze pretvorim u string
Dim d As Date
Dim d3 As Date

d = DBCombo1.Text
Dim NewD As String
NewD = Format(d, "ddmmyyyy")
tada pozovem funkciju koja string pretvori u format 11/6/2010

Function Preslozi(ByVal text1 As String) As String
Preslozi = Mid(text1, 4, 2) & "/" & Left(text1, 2) & "/" & Right(text1, 4)
End Function

i ovo radi, ali sad ovaj dobiveni string moram pretvoriti u datum i kod pretvaranja u datum

d3=Format(Preslozi(NewD), "mm/dd/yyyy")

d3 umjesto da bude 11/6/2010 on vrati u 11.6.2010 što ne prihvaća SQL

SELECT ........ WHERE DATUM.DATUM='24.6.2010' ne radi
pijavljuje grešku Run-time Error 3464:
Data type mismatch in criteria expression
[ pskibola @ 12.11.2010. 14:41 ] @
Problem je u pretvaranju stringa u datum
jer vb6 dobiveni string 11/6/2010 vrati u datum 11.6.2010
a meni treba datum 11/6/2010 da bi radio sql upit
[ vuchko.vuchko @ 12.11.2010. 15:09 ] @
Ajd okaci projekat ili napravi neki slican pa da resimo to...
[ pskibola @ 12.11.2010. 15:42 ] @
vuchko Posat ću ti mailom. koji ti je e-mail ?
[ vuchko.vuchko @ 12.11.2010. 16:44 ] @
Poslao sam ti na PM!
[ pskibola @ 13.11.2010. 06:59 ] @
Riješen problem. VB6 u SQL quuery prihvaća string, ali ga moraš staviti u # string#
da bi string prepoznao kao datum. Format stringa mora biti US datum 03/23/2010
[ izonic @ 14.11.2010. 23:53 ] @
strDatum = "#" & Format(datum, "mm-dd-yy") & "#"
[ vuchko.vuchko @ 15.11.2010. 19:56 ] @
Citat:
Riješen problem. VB6 u SQL quuery prihvaća string, ali ga moraš staviti u # string#
da bi string prepoznao kao datum. Format stringa mora biti US datum 03/23/2010


Samo bi' te ispravio u jednoj stvari... mislim da se string stavlja izmedju znakova '????' tako imamo npr.

Code:
SELECT * FROM Tabela1 where ime='Marko';


a kad uporedjujes datume onda stavljas datum izmedju znakova #03/23/2010# tako imamo npr.

Code:
SELECT * FROM Tabela1 where Datum = #03/23/2010#;


Ono zapravo u tvom programu jeste string ali ti ne prosledjujes SQl-u string nego vrijednost datuma.

* Evo jedan mali primjer, u svojoj bazi promjeni vrijednost polja Datum iz Date/Time u Text i tada ce ti ovaj kod raditi posao:

Code:
SELECT * FROM Tabela1 where Datum = '03/23/2010';


Ako sam ja sad negdje pogrijesio ispravite me!

Pozdrav!!!
[ miki987 @ 03.04.2013. 20:11 ] @
da osvezimo staru temu :D, totalna konfuzija sta treba a sta ne treba, molim za pomoc
imam sledecu situaciju
u bazi je polje DATUM = date/time
u cp je podesen short format datuma "d.m.yyyy"
listview cita format datuma kao "d.m.yyyy"

za filtriranje koristim sledece

Code:

Dim start1 As String
Dim start2 As String

start1 = Format(DTPicker1, "d/M/yyyy")
start2 = Format(DTPicker2, "d/M/yyyy ")

SQL = "SELECT * FROM ulaz_repromaterijala WHERE datum >='" & start1 & "' AND datum <='" & start2 & "' ORDER BY redni_broj DESC;"


gde gresim???



ukoliko pokusam sa ovim, pretraga se filtrira ali je problem sto ne daje tacne rezultate npr.

Code:
SQL = "SELECT * FROM ulaz_repromaterijala WHERE datum >=# " & start1 & " # AND datum <=# " & start2 & " # ORDER BY redni_broj DESC;"


ukoliko stavim datum od 1.4.2013 do 11.4.2013 prikazuje mi sve rezultate ukljucujuci i datum 30.4.2013
ukoliko stavim datum od 1.4.2013 do 9.4.2013 prikazuje regularno

[Ovu poruku je menjao miki987 dana 03.04.2013. u 22:05 GMT+1]
[ vujkev @ 03.04.2013. 23:49 ] @

Code:

Format(DTPicker2, "mm-dd-yyyy ")
[ vuchko.vuchko @ 04.04.2013. 08:09 ] @
Pozdrav srtarom društvu sa VB foruma! Nismo se dugo čuli :-).

Mislim da ti je razlog objašnjen u mom postu od 15.11.2010., razlog greške je podešavanje polja u u bazi (sql u formatu date/time radi sa ## a za text koristis ' ' )

Trenutno nemam pristup svojim starim kodovima da bih pokušao testirati neko rješenje.

Imao sam sličan problem sa jednom bazom, spajao sam VB i access, čini mi se. Sjećam se da je sql bio toliko uporan da mu se datum zadaje u formatu mm/dd/yyyy i da sam na kraju i ja popustio :-). Čini mi se da je tako i u ovom tvom slučaju:

Citat:
ukoliko stavim datum od 1.4.2013 do 11.4.2013 prikazuje mi sve rezultate ukljucujuci i datum 30.4.2013
ukoliko stavim datum od 1.4.2013 do 9.4.2013 prikazuje regularno


U prvom slučaju ti tražiš raspon od 4. Januara 2013 do 4. Novembra 2013.
U drugom opet tražiš raspon od 4. Januara 2013 do 4. Septebra 2013. Mislim ne tražiš ti to nego SQL tako razumije.

Takodje mislim da imas malo zapisa u bazi pa nemožeš osjetiti razliku pri upitima.

Pokušaj tražiti da ti prikaže od npr. 28.04.2013 do 30.04.2013. (vjerujem da će izbaciti grešku), a ako pokušaš sa 04/28/2013 do 04/30/2013 mislim da će biti OK.

Molim te javi šta si napravio.
[ miki987 @ 04.04.2013. 17:15 ] @
evo ovako je lakse, pa da nadjemo resenje
posto imam dovoljno vremena i zivaca prepravicu ceo program, sve opcije su moguce, dakle dajte mi predlog sta i kako da postavim

u ovom primeru datum u bazi je Text, i korisim ' ', medjutim nije ispravna pretraga
[ miki987 @ 06.04.2013. 18:01 ] @
ima li pomoci :))))
[ loto17 @ 07.04.2013. 03:15 ] @
Citat:
miki987: ima li pomoci :))))


Ima !!!

1. U Control Panel \ Regional options treba da stoji : English(United Kingdom)
2. Control panel\Customize Regional Options\ Short Date format\ podesiti na : dd.mm.yy
3. Arhivu OBAVEZNO raspakovati u C:\project1








[Ovu poruku je menjao loto17 dana 07.04.2013. u 04:39 GMT+1]
[ miki987 @ 07.04.2013. 14:28 ] @
loto17 Hvala jos jednom na tvojoj pomoci, medjutim imam drugi problem jer kasnije u kodu koristim text1.text = format(date, "mmmm") i uporedjujem ga sa drugim parametrima, tako da mi je bitno da promenom sa SRB na US zadrzim (decembar a ne december itd)
da li je moguce nekako da sve ovo radi ali sa SRB?

i jos jedno pitanje, koja je razlika u nacinu povezivanja baze u mom i tvom primeru koristeci DataEnvironment???
[ shpiki @ 07.04.2013. 23:15 ] @
A zasto koristis pun naziv meseca?
Jedina razlika ce biti oktobar - oct umesto okt, ali to mozes da resis...
[ loto17 @ 08.04.2013. 10:07 ] @
Citat:
miki987: loto17 Hvala jos jednom na tvojoj pomoci, medjutim imam drugi problem jer kasnije u kodu koristim text1.text = format(date, "mmmm") i uporedjujem ga sa drugim parametrima, tako da mi je bitno da promenom sa SRB na US zadrzim (decembar a ne december itd)
da li je moguce nekako da sve ovo radi ali sa SRB?


Samo stavi Serbian( Latin) umesto English ( United Kingdom) !!!


Citat:
miki987
i jos jedno pitanje, koja je razlika u nacinu povezivanja baze u mom i tvom primeru koristeci DataEnvironment???


Ja ne znam tvoj nacin :)



[Ovu poruku je menjao loto17 dana 08.04.2013. u 15:32 GMT+1]
[ miki987 @ 08.04.2013. 19:57 ] @
ti preko DataEnvironment-a uvlacis tabele a ja koristim otvaranje baze preko sql-a
ja bazu otvaram ovako

Code:
conn.Provider = "Microsoft Jet 4.0 OLE DB Provider;Data Source=" & txt.putanja & ";Jet " & "OLEDB:Database Password=pass"

i onda kada tvoj kod iskotistim ovako
Code:
SQL = "SELECT * FROM ulaz WHERE ""datum>=" & Format(DTPicker1.Value, "Medium Date") & " and datum<='" & Format(DTPicker2.Value, "Medium Date") & "'"

ne dobijam nista
izvini stvarno na cimanju, znam da su ovo elementarne stvari ali mi ne ide nikako od ruke
sto se tice meseci ok ukapirao sam da pomocu stringova mogu resiti to ali ovo ne znam kako
hvala
[ miki987 @ 10.04.2013. 22:34 ] @
[ loto17 @ 11.04.2013. 14:10 ] @
Miki, ne moze ovako!!!
Code:
SQL = "SELECT * FROM ulaz WHERE ""datum>=" & Format(DTPicker1.Value, "Medium Date") & " and datum<='" & Format(DTPicker2.Value, "Medium Date") & "'"




Ili namesti datum na US format i datume razdvajaj tarabama (#) , ili koristi ovo moje resenje sa : DataEnvironment1

Code:

       DataEnvironment1.rstablica.Open "Select * From tablica order by ID DESC"
       DataEnvironment1.rstablica.Filter = "datum>=" & Format(DTPicker1.Value, "Medium Date") & " and datum<='" & Format(DTPicker2.Value, "Medium Date") & "'"


CP podesavanja:
Datum : dd.mm.yyyy
Jezik: Serbian ( Latin )
Nazive meseci dobijas onako kako si trazio: Januar, Februar...
Polje datum u tabeli TABLICA nije text nego Date/Time



[Ovu poruku je menjao loto17 dana 11.04.2013. u 15:54 GMT+1]
[ shpiki @ 13.04.2013. 12:44 ] @
@Offtopic:
koliko je sve to prakticno za dalju/masovnu upotrebu?
Ne verujem da pise SW sam za sebe, a onda se postavlja pitanje da li menjati podesavanja na svakom sistemu na koji planira da instalira svoj SW samo zbog jednog programa?
Zar nije prakticnije/upotrebljivije da program prilagodi sistemu, a ne sistem programu?
[ miki987 @ 14.04.2013. 11:47 ] @
predpostavljam da jeste i da si u pravu, npr. kad promenim ovo desava mi se da mi ceo sistem i excel fajlovi menjaju nacin formatiranja brojeva...ali kako ro odraditi ...