Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 15 odgovora
  • 3.895 pregleda

Najnovija ↓

Access memo - problem 255 06.03.2011. u 09:30 · pre 190 meseci #1
Poštovani, radim jednu bazu za lekarsku ordinaciju i taman kada sam završio pojavio mi se problem odsecanja karaktera u memo polju kada dužina prelazi 255. To je u ovoj bazi uvek slučaj jer je lekarski pregled opširan. Pri ubacivanju u drugu tabelu obavezno mi odseče tekst i na kraj doda neke kukice. Koristim DoCmd.RunSQL naredbu tipa insert into tabela2 (sifra, memo) values (sifra, memo). Našao sam dosta toga na forumu, ali ničega konkretno, a još me više zbunjuje što nekome radi, a nekome ne. Koristim Access 2003. U prilogu je kompletan primer koji ilustruje problem. Hvala
Re: Access memo - problem 255 06.03.2011. u 10:00 · pre 190 meseci
izmenjeno 1 put, poslednji put galac1968 06.03.2011. u 10:11
  1. galac196806.03.2011. u 10:11zapis iz teksta poruke
#2
Pregledaj ovo http://office.microsoft.com/sr...je-memo-polja-HA010096313.aspx

Promeni na PROPERTY SHEET na kartici DATA osobinu TEXT FORMAT u Rich text i resio si problem,al se ipak na gornjem linku informisi o ososbinama memo polaj
Re: Access memo - problem 255 06.03.2011. u 14:29 · pre 190 meseci #5
1) Promeni naziv polja tabel iz Memo > fMemo. "Memo" je rezervisana reč
2) Promeni naziv polja forme ize Memo u > fMemo
3) Izmeni programsku liniju u ovo:

CurrentDb.Execute "INSERT INTO Table2 (Sifra, fMemo) VALUES (" & Sifra & ", '" & fMemo & "')"

Sad radi.
Potpis
Pozdrav,
Branislav
Re: Access memo - problem 255 07.03.2011. u 07:01 · pre 190 meseci #6
Rešili ste mi veliki problem. Fajl koji sam postavio je samo demo varijanta koja ilustruje primer, u realnoj aplikaciji ta polja se zovu pregled, nalaz, dijagnoza... Samim tim nisam koristio rezervisanu reč memo. Takođe, radi i DoCmd.RunSQL naredba. Upit prenosi 10-ak vrednosti, a samo tri su memo. Samo njih sam stavio između znakova & i " tako da izgleda ovako npr: '" & Nalaz & "'. Sada sve radi normalno i prilikom prenosa ceo tekst je sačuvan i izgleda isto kao u izvorišnom polju. Ovaj deo sa navodnicima za mene je potpuna novost i nadam se da će pomoći i drugima koji su imali sličan problem.
Branislave, kao višegodišnji pretplatnik PC PRESS-a redovno čitam access bajtove, a to mi je i omiljena rubrika. Moje aplikacije su pune primere iz nje. Najiskreniji komplimenti. Hvala mnogo i veliki pozdrav od Nikole!
Re: Access memo - problem 255 07.03.2011. u 07:20 · pre 190 meseci #7
Ja koristim CurrentDB.Execute iz više razloga; recimo jedan od njih je to što ne moraš da stavljaš DoCmd.SetWarnings False/True da isključiš poruku za potvrdu akcije.

Za ostatak komentara, uh, hvala. :)
Potpis
Pozdrav,
Branislav
Re: Access memo - problem 255 07.03.2011. u 11:14 · pre 190 meseci #8
Ako mislimo na isto, ja to jednostavno isključim u Tools/Options/Edit-Find/Confirm. Pozdrav :)
Re: Access memo - problem 255 07.03.2011. u 12:53 · pre 190 meseci #9
Jeste, ali to je lokalna opcija tj. važi samo na tom računaru gde ste te opcije isključili.
Potpis
Pozdrav,
Branislav
Re: Access memo - problem 255 08.03.2011. u 10:42 · pre 190 meseci #10
Problem sam rešio kod sebe na računaru na onoj maloj bazi koju sam priložio. Sinoć kod klijenta ipak nisam uspeo. Moj kod u potpunosti radi, osim u delu kada treba ubaciti više od 255 karaktera. Kod je:

Private Sub Command9_Click()
Dim UslovPa As String
Dim BrojacPa As Byte
Dim BrojacPr As Byte
Dim UslovPr As String

If Me!PacijentID <> Empty Then
UslovPa = "[PacijentID]=" & "'" & Me!PacijentID & "'"
UslovPr = "[PregledID]=" & "" & Me!PregledID & ""
BrojacPa = DCount("PacijentID", "Pacijenti1", UslovPa) ' prebrojava pacijente
BrojacPr = DCount("PregledID", "Pregled1", UslovPr) ' prebrojava preglede
If BrojacPa = 0 Then ' ako nema pacijenata upisuje i pacijenta i pregled
DoCmd.RunSQL "INSERT INTO Pacijenti1 (PacijentID, ImePacijenta, GodRodjenja, Zanimanje, BrojTelefona, NazivUlice, PostanskiBroj, NazivMesta, Napomena) VALUES (PacijentID, ImePacijenta, GodRodjenja, Zanimanje, BrojTelefona, NazivUlice, PostanskiBroj, NazivMesta, Napomena)"
DoCmd.RunSQL "INSERT INTO Pregled1 (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija) VALUES (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija)"
MsgBox "Podaci su uspesno sacuvani!"
DoCmd.RunCommand acCmdRefresh
Else
If (BrojacPa = 1) And (BrojacPr = 0) Then ' ako je pacijent tu upisuje samo pregled
DoCmd.RunSQL "INSERT INTO Pregled1 (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija) VALUES (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija)"
DoCmd.RunCommand acCmdRefresh
Else
MsgBox "Ovaj pregled je vec sacuvan!" ' ima i pacijenta i pregleda
End If
End If
Else
MsgBox "Nema podataka za cuvanje!"
End If
' sve ovo radi savrseno osim kada su memo polja duza od 255. Kada ubacim ono sto sam saznao na forumu nece da radi
' izbacuje poruke key violations, greska u upitu i mnogo toga jos, a ne znam zasto kada nista ne menjam osim u VALUES delu
End Sub

Gde grešim? U prilogu šaljem konkretan primer. Hvala unapred!
Re: Access memo - problem 255 08.03.2011. u 11:33 · pre 190 meseci #11
Zar nismo problem već rešili, a vi opet istu grešku?

...PacijentID, '" & Nalaz & "', Dijagnoza,...
Potpis
Pozdrav,
Branislav
Re: Access memo - problem 255 08.03.2011. u 12:12 · pre 190 meseci #12
Pa to i kažem i sam se čudim. Nije opet ista greška, ovo je izvorni kod pre promena. Kada izmenjam to što smo rekli, dobijam poruku od drugim greškama. Npr. key violation, query expresion... Ne znam šta sve, to se ne javlja u kodu koji sam priložio, ali kad promenim kako smo rekli, greška za greškom???
Re: Access memo - problem 255 08.03.2011. u 12:44 · pre 190 meseci #13
Napravite ovako:

Dim strSQL As String

strSQL = "INSERT INTO Pacijenti1 (PacijentID, ImePacijenta, GodRodjenja, Zanimanje, BrojTelefona, NazivUlice, PostanskiBroj, NazivMesta, Napomena) VALUES (PacijentID, ImePacijenta, GodRodjenja, Zanimanje, BrojTelefona, NazivUlice, PostanskiBroj, NazivMesta, Napomena)"
Debug.Print strSQL
Exit Sub

Zatim iz Immediate okna prenesite iskaz u novi upit, SQL view. Pokrenite upit. Da li radi ili ne?

To što sam savetovao radi kod mene, ali ja uvek izmenim DoCmd.RunSQL u CurrentDB.Execute. Jednu izvršava JET, drugu VB...
Potpis
Pozdrav,
Branislav
Re: Access memo - problem 255 08.03.2011. u 12:53 · pre 190 meseci #14
Hmmmm, ja tek sad vidim ovo:

"INSERT INTO Pregled1 (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija) VALUES (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija)"

Ono iza VALUES (vrednosti) nisu "values" već običan tekst koga niko ne razume - ni VBA, ni Access ni JET.

Daću jedan jednostavan primer:

INSERT INTO tblTest (ID, Broj) VALUES (1, 10)

Ovo će da radi. Međutim, bez gledanja ove gornje linije možete mi reći koje vrednosti ima ID i Broj i da li su to promenljive?

INSERT INTO tblTest (ID, Broj) VALUES (ID, Broj)

Za program to nisu, to je običan string a ne promenljiva.
Potpis
Pozdrav,
Branislav
Re: Access memo - problem 255 08.03.2011. u 14:29 · pre 190 meseci #15
Ok, ovo poslednje razumem, ali ne vidim kontekst. U mom slučaju se to ne dešava jer su u zagradama promenljive, odnosno nazivi polja. I još kada se kod pozove na formi u kojoj svaki slog ima dugme sa tim kodom, ne bi trebalo da bude problema. Klikom na dugme već smo fokusirani na tekući zapis i to sve radi normalno.
Suština ove teme je bila prenos iz memo polja u drugo polje kada dužina teksta prelazi 255 karakrera i Vi ste Branislave rešili taj problem i Vaš kod je potpuno korektan. Iz nekog razloga to kod mene ne radi. Ali sam nekako rešio i to priznajem slučajno.
Moj kod bio je:
DoCmd.RunSQL "INSERT INTO Pregled1 (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija) VALUES (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija)"
Branislavljevo rešenje:
DoCmd.RunSQL "INSERT INTO Pregled1 (PregledID, Datum, PacijentID, Nalaz, Dijagnoza, Terapija) VALUES (PregledID, Datum, PacijentID, '" & Nalaz & "', '" & Dijagnoza & "', '" & Terapija & "')"
Ovo je potpuno tačno i radi to što sam ja hteo.
Ipak, to kod mene nije htelo da radi. Promenim nalaz, radi, dijagnozu, radi i stignem do polja terapija koje ne radi, odnosno u tom slučaju dobijam grešku tipa key violation...
Sada mi izgleda bezveze, ali problem je izazvan time što je u odredišnoj tabeli bilo zabranjeno da memo polje bude null.
Iz razloga koje ne razumem sasvim, naredba: terapija radi, a '" & terapija & "' NE, kada je svojstvo Allow Zero Lenght postavljeno na No.
Vama se Branislave, zahvaljujem na rešenju i vremenu koje ste mi posvetili.
Re: Access memo - problem 255 14.12.2011. u 13:53 · pre 181 mesec #16
Niconne jel mozemo da vidimo te primere aplikacija u access-u koje imas?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme