Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa datumskim poljem

[es] :: Access :: Problem sa datumskim poljem

[ Pregleda: 2606 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.dsl.optinet.hr.



+2 Profil

icon Problem sa datumskim poljem20.04.2009. u 18:00 - pre 182 meseci
Sa donjom procedurom popunjavam tablicu u subformi sa podacima iz forme. Sve radi, osim što neće da mi prihvati polje datum.
Polje datum u tablici tblUlaz postavljeno je kao Date/Time - ShortDate.

Molim pomoć

DoCmd.RunSQL "INSERT INTO tblUlaz(IDTransakcije,SIFRA,Datum,Skl,Ulaz,IDdokumenta,BrojDokumenta,Dobavljac)" & _
"SELECT '" & Me.IDTransakcije & "','" & Me.ComboSifra.Column(0) & "','" & Me.Datum & "','" & _
Me.ComboSkl.Column(0) & "','" & Me.txtKomada & "','" & Me.IDdokumenta.Column(0) & "','" & _
Me.BrDokumenta & "','" & Me.Dobavljac.Column(0) & "'"
Prikačeni fajlovi
 
Odgovor na temu

Air Live
Srbija

Član broj: 162278
Poruke: 410
92.36.135.*



Profil

icon Re: Problem sa datumskim poljem20.04.2009. u 18:25 - pre 182 meseci
Evo pokušaj sada.

Prikačeni fajlovi
 
Odgovor na temu

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.dsl.optinet.hr.



+2 Profil

icon Re: Problem sa datumskim poljem20.04.2009. u 19:15 - pre 182 meseci
Probao sam ali kod mene i dalje neće!
 
Odgovor na temu

domaci_a_nas
PHP developer

Član broj: 42333
Poruke: 524
*.dynamic.sbb.rs.



+8 Profil

icon Re: Problem sa datumskim poljem20.04.2009. u 20:20 - pre 182 meseci
Ne znam iskreno odakle ti ideja da datumsko polje postaviš između apostrofa. Da bi se osigurao da će datumsko polje biti upisano baš onako kako piše na tvom računaru bez obzira na regional settings koristi sledeće
Code:
DoCmd.RunSQL "INSERT INTO tblUlaz(IDTransakcije,SIFRA,Datum,Skl,Ulaz,IDdokumenta,BrojDokumenta,Dobavljac)" & _
"SELECT '" & Me.IDTransakcije & "','" & Me.ComboSifra.Column(0) & "'," & CLng(Me.Datum) & ",'" & _
Me.ComboSkl.Column(0) & "','" & Me.txtKomada & "','" & Me.IDdokumenta.Column(0) & "','" & _
Me.BrDokumenta & "','" & Me.Dobavljac.Column(0) & "'"

Ozbiljan i odgovoran mladić
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Problem sa datumskim poljem20.04.2009. u 20:40 - pre 182 meseci
Probaj ovako:
Code:

Private Sub Command27_Click()
'Zapazi kako se moze koristiti debug.print da ti otprinta SQL
'koji onda mozes da probas u SQL prozoru i tu lakse vidis sta ne valja

Dim strSQL As String

strSQL = "INSERT INTO tblUlaz(IDTransakcije,SIFRA,Datum,Skl,Ulaz,IDdokumenta,BrojDokumenta,Dobavljac)" & _
             vbCrLf & "SELECT '" & Me.IDTransakcije & "','" & Me.ComboSifra.Column(0) & "','" & Me.Datum & "','" & _
             Me.ComboSkl.Column(0) & "','" & Me.txtKomada & "','" & Me.IDdokumenta.Column(0) & "','" & _
             Me.BrDokumenta & "','" & Me.Dobavljac.Column(0) & "'"
             
Debug.Print "Originalni strSQL:"
Debug.Print "------------------"
Debug.Print strSQL
             
'Ovako treba da ti izgleda strSQL, bez navodnika oko numerickih polja
strSQL = "INSERT INTO tblUlaz(IDTransakcije,SIFRA,Datum,Skl,Ulaz,IDdokumenta,BrojDokumenta,Dobavljac)" _
             & vbCrLf & "SELECT " & Me!IDTransakcije & ",'" & Me!ComboSifra.Column(0) _
             & "',#" & Me!Datum & "#,'" _
             & Me.ComboSkl.Column(0) & "'," _
             & Me.txtKomada & "," & Me.IDdokumenta.Column(0) & ",'" _
             & Me.BrDokumenta & "'," & Me.Dobavljac.Column(0) & ""
             
Debug.Print "Ispravljen strSQL:"
Debug.Print "------------------"
Debug.Print strSQL

DoCmd.RunSQL strSQL
             
Me.subUlaz.Requery

        Me![ComboSifra] = Null
        Me![txtKomada] = Null
        DoCmd.GoToControl "ComboSifra"
        
End Sub


Izvrsi kod i pogledaj debug window. Videces tvoj originalni SQL i promenjeni. Problem nije bio u datumu nego u numerickim polima. Nije bilo razloga da numericka polja stavis u znakove navoda oko nummerickih podataka. Zto je pucao kveri. Sto se tice datuma, datum moze da prodje i sa znakovima navoda ali je cistije kad se upotrebi #12.04.2008# nego '12.04.2008'


Ako vec ovako radis, preporucujem da umesto RunSQL koristis

set db = currentdb
db.execute failonerror

i da dodas Error handling. Onda ce ti tacno reci

Zatim, sta ce se desiti ako korisnik pritisne dugme a da nije izabrao sve podatke. Meni je pucao kveri, a verujem da ce i kod korisnika. Dakle, pre nego sto pokusas da izvrsis kveri, proveri da li su svi podaci prisutni. Ako je bilo sta NULL ili ima recimpo prazan string, nemoj ni da pokusas da izbvrsis kveri, nego pokazi korisniku poruku.

I na kraju, mozda najkorisnija stvar - umesto da se mucis sa postavljanjem apostrofa gde treba i korektnog oznacavanja datuma, nadji u Bazi Znanja na forumu funkcije QUoted i SQLDAte i koristi njih. SQLDate imas i na sajtu Alen Browne, pa mozes da uzmes i odatle.
http://allenbrowne.com/ser-36.html

Moram da priznam da mi dijagram relacija nije bas jasan, ali ko zna, mozda tebi bas tako treba. Zbog neobicnog dijagrama relacija mucis se da postignes veoma jednostavnu stavr - unos stavki sa dokumenta u tabelu Ulaz.

:-)
 
Odgovor na temu

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.dsl.optinet.hr.



+2 Profil

icon Re: Problem sa datumskim poljem20.04.2009. u 21:02 - pre 182 meseci
Zahvaljujem na sugestijama.

Što se tiče provjere dali su sva potrebna polja popunjena tu sam mislio ispred strSQL dodati nešto kao

If IsNull(Me.Sifra) Then
MsgBox "Upiši šifru materijala!", vbExclamation, "Obavijest"
DoCmd.GoToControl "Sifra"
Exit Sub
End If

itd.

[Ovu poruku je menjao pmiroslav dana 20.04.2009. u 22:29 GMT+1]

[Ovu poruku je menjao pmiroslav dana 20.04.2009. u 22:29 GMT+1]
 
Odgovor na temu

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
85.114.47.*



+2 Profil

icon Re: Problem sa datumskim poljem28.04.2009. u 12:18 - pre 182 meseci
Vračam se ponovno na ovo temu jer mi se pri kraju posla opet pojavljuju neki problemi.

Kod rada sa formama "frmUlaz" i "frmIzlaz" nakon pokušaja da unesem podatke u subformu javlja mi se poruka o greški:

Microsoft Office Access can't append records in the appemd query.

MS access set 1 field(s) to Null due to a type conversion falture, and it did'nt add 0 record(s) to thr table due key violations, 0 record(s) due to lock violations, and 0 record(s) due to validation rule violations.
Do you want to run action query anyway?
To ignore the error(s) and run the query anyway, click Yes.
For an explanation of the causes of violation, click Help.

Ovo mi se dešava kada pokušavam upisati podatke za novu Transakciju, tj kada u tablici "Ulaz" ili "Izlaz" još nema podataka, a ako ručno unesem samo jedan podatak direktno u tablicu tada mi se i iz forme dozvoljava upis.



U međuvremenu sam primjetio da nakon što ispunim sva polja u glavnoj formi pa ručno postavik kursor na polje IDtransakcije u subformi i onda pritisnem dugme za popunjavanje subforme procedura se ispravno odradi




[Ovu poruku je menjao pmiroslav dana 28.04.2009. u 14:35 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Problem sa datumskim poljem28.04.2009. u 17:33 - pre 182 meseci
Problem je u ovome
Code:
INSERT INTO tblUlaz(IDTransakcije,SIFRA,Datum,Skl,Ulaz,IDdokumenta,BrojDokumenta,Dobavljac)" 


Pokusavsa da unese IDTransakcije koji ne postoji ako nemas ni jedan rekord u tabeli Transakcije. I sam si video da ako imas rekord u tabeli Transakcije, sve 'lepo radi',. Znaci da pre nego pritisnes ENTER dugme na formi, rekord na glavnoj formi (Transakcije) moras prvo da sacuvas.

A razlog svemu ovome je sto ti subforma nije vezana (bound). Ako subforma nije bound, onda moras sam da popunjavas podatke nekakvim kodom, ovo sto ti pokusavas. Kada je 'subforma' vezana, IDTransakcije se sam popunjavao i o ovome svemu ne moras da brines. Ukratko, ucini da tvoja subUlaz zaista bude subforma, vezana za glavnu formu. Onda ti dugme Enter nece trebati uopste, kao ni sav ovaj posao koji radis sa INSERT INTO.

Predlazem da potpuno batalis ovo dugme Enter i kod iza njega. Stavi da ti je subform vezana (bound) i kazi da je Link Master field = [ID Transakcije] s aglavne forme i da je Child Field = [ID transakciej] (sa subUlaz). I tako nece biti nikakvog koda. The best code is no code at all.

Ne razumem zasto mnogi uporno pokusavaju da pronandju toplu vodu. Jedna od kljucnih stvari koja Access odvaja u posebnu kategoriju u odnosu na druge nazovi front end alate za baze podataka, jesu upravo vezane subforme, bas na nacin kako ih je Microsoft zamislio i ugradio. Ako ne koristis vezane subfome za relacije 1:vise, bolje je sve uraditi u VB. Vezane subforme i report genmerator su dve stvari koje Access odvajaju od ostalih alata za pravljenje front enda za baze podatka.

 
Odgovor na temu

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.dsl.optinet.hr.



+2 Profil

icon Re: Problem sa datumskim poljem28.04.2009. u 18:08 - pre 182 meseci
Citat:
Zidar:

Predlazem da potpuno batalis ovo dugme Enter i kod iza njega. Stavi da ti je subform vezana (bound) i kazi da je Link Master field = [ID Transakcije] s aglavne forme i da je Child Field = [ID transakciej] (sa subUlaz). I tako nece biti nikakvog koda. The best code is no code at al

:-)


Hvala na sugestiji ,ali ako si primjetio moja subforma je vezana kako predlažeš jedino što u subformi nisam polja za šifru i skladište postavio da budu combo kako bi se sadržaj kojim se popunjava izabirao iz tablice MAT odnosno skladište. Znam da može i tako.

Ali mi se ovakav način koji ja pokušavam napraviti čini malo više "šminkerski" pa bi ipak volio ako bi se to moglo tako nekako napraviti
 
Odgovor na temu

pmiroslav
Miroslav
Osijek

Član broj: 57354
Poruke: 298
*.dsl.optinet.hr.



+2 Profil

icon Re: Problem sa datumskim poljem28.04.2009. u 18:36 - pre 182 meseci
Evo napravio sam to tako kako je Zidar predložio.
Jedino mi je još imam kako izbječi sistemsku poruku o grešci.
U tablici ulaz postavio sam dvostruki ključ kako bih zabranio dupli unos šifre pod istim IDtransakcije i sada kada se to desi Acces izbaci svoju poruku, a ja bih želo umjesto nje napraviti svoju kao npr " Materijal pod tom šifrom več je upisan"
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Access :: Problem sa datumskim poljem

[ Pregleda: 2606 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.