[ ZoranDE @ 30.08.2015. 06:42 ] @
Ljudi pomagajte, vise nemam ideja

naime .. imam bazu u Accessu, i tabele koje treba sa podacima da ucitam u MySQL bazu.
Napravio sam u MySQL, bazu, i preslikao tabele iz Accessa.

zatim, napraivo sam mali software u MS Access 2007, koji uzima podatke iz MS Access baze, i salje ih u MySQL.

prebacivanje radim preko ODBC-a.

Nikako da nadjem nacin da polje koje je u MS Access tipa : Single, 2 Decimal places , i recimo vrednost 1,56 , prebacim u MySQL !

U MySQL, imam tabelu, u koju treba da ucitam vrednosti, i probao sam sve i svasta, iscitavao forume, ali jednostavno, nikako ne mogu : 1,56 iz MS Access ,da prebacim u MySQL ??

trenutno mi u MySQL stoji tip polja Decimal 11,2 . Probao sam i sa Float, i Double, i vise ne znam sta nisam probao, ali ne ide ?

Da li je problem u ODBC-u ? Ili je problem u MS Accessu koji sam uzeo za neki interface za prebacivanje izmedju ove 2 baze, pa VBA pravi problem ?

u Accessu mi stoji linija: Replace(Format(rst![PercentualeBonus], "0.00"), ",", ".") , i ovo prodje, kompajler ne prijavljuje gresku, ali , u MySQL tabeli umesto da dobijem 1,56 ja dobijem vrednost 2

10 x thanks in advance .

[ bogdan.kecman @ 30.08.2015. 13:37 ] @
kako ti izgleda deo koda koji radi insert u mysql?
[ ZoranDE @ 30.08.2015. 13:47 ] @
Ovako

db.Execute "INSERT INTO table (id,percentuale) VALUES (0," & Replace(Format(rst![Percentuale], "0.00"), ",", ".") & ")"


Probao sam I sa CDec(rst![Percentuale]) , ali nista. ...opet prilikom uvoza, Access (ili ODBC) isece decimalna mesta , I umesto npr. 12,25 dobijem 12


[ bogdan.kecman @ 30.08.2015. 13:57 ] @
ja ne radim bas u VB pa nisam skroz siguran sta se tu sad desava ali uradis sledece ... umesto da uradis db.Execute, uradi jedan printf() tj pandam tome u VB-u i isprintaj u neki txt box taj INSERT i vidi sta pise u njemu :)

posto ovo
Code:

Replace(Format(rst![Percentuale], "0.00"), ",", ".") 


meni malo nema smisla
[ djoka_l @ 30.08.2015. 15:26 ] @
Pusti MySql da uradi konverziju, a ne Access.

Kada god sam imao problema sa ODBC uvek je to bilo u tipovima podataka. Recimo, prebacujem iz Accesa u Oracle i polje tipa decimal postane VARCHAR2(1) u Oracle!!!

Dakle, uradi
INSERT INTO table (id, percentuale) VALUES (0, CAST( 'XXX' AS DECIMAL(11,2))
gde ćeš umesto XXX da staviš vrednost iz tabele u Accessu konvertovanu u string funkcijom CStr i odgovarajuće formatiranu (ako ti MySQ očekuje decimalmnu tačku, onda sa tačkom, inače sa decimalnim zarezom).

Iz mog iskustva sa kilavim ODBC-om, uvek je najbezbednije numeričke vrednosti prebacivati kao stringove, pa pustiti odredišnu bazu da radi konverziju.

[ ZoranDE @ 30.08.2015. 15:32 ] @
Tako je ! ... probao sam to, da prebacim kao string, I posle MySQL da odradi posao I to radi.

ali sam se posle zainatio, I ipak otkrio da, stvarno kilavi ODBC, moze da se natera da uradi ovo

Replace(Format(rst![nekoPolje], "0.00"), ",", ".")

evo komande u Accessu, koja omogucava da se decimalna vrednost, prenese kako treba u MySQL.

pozdrav I hvala svima na diskusiji