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

Remontovanje železničkih vagona

[es] :: Access :: Remontovanje železničkih vagona

Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 39037 | Odgovora: 192 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
65.49.14.*



Profil

icon Remontovanje železničkih vagona18.07.2014. u 11:38 - pre 118 meseci
Našla neko uputstvo kako se pravi forma za unos podataka u tabelu, sve mi funkcionice sem ove male procedure (radi ako je OsovinaID Number, ali ne radi ako je Autonumber a meni bas autonumber treba). Dobijam "Run-time error '3113'; Cannot update 'OsovinaID'; field not updateable." Ima li nekog (jednostavnog) leka za moj slučaj?

Code:
Private Sub cmdAdd_Click()
      If Me.txtID.Tag & "" = "" Then
        CurrentDb.Execute "INSERT INTO Osovine (Broj, Godina, Tip, Napomena)" & _
              " VALUES (" & Me.txtbroj & ",'" & Me.txtGodina & "','" & Me.txtTip & "','" & Me.txtNapomena & "')"
    Else
        CurrentDb.Execute "UPDATE Osovine " & _
                " SET OsovinaID=" & Me.txtID & _
                ", Broj='" & Me.txtbroj & "'" & _
                ", Godina='" & Me.txtGodina & "'" & _
                ", Tip='" & Me.txtTip & "'" & _
                ", Napomena='" & Me.txtNapomena & "'" & _
                " WHERE OsovinaID=" & Me.txtID.Tag
    End If
    cmdClear_Click
    OsovineSubF.Form.Requery
End Sub
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 13:05 - pre 118 meseci
Da bi unosila podatke u tabelu preko forme nije ti potrebna nikakva procedura pisana u VBA, dovoljno je da formi za Record Source u Property-ju postavis odgovarajucu tabelu ili mozes za pocetak jednostavnije da pozoves carobnjaka (Form Wizard) za kreiranje forme u kome biras koja ce tabela biti Record Source i koja ce se polja nalaziti na formi a koja se nalaze vec u tabeli.

U prilogu ti je tvoj primer iz prethodnog posta sa formom za unos podataka.
Ako se ne snadjes okaci tvoju bazu pa da resimo problem.

Prikačeni fajlovi
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
*.adsl-1.sezampro.rs.



Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 14:53 - pre 118 meseci
Citat:
FOX028: Da bi unosila podatke u tabelu preko forme nije ti potrebna nikakva procedura pisana u VBA, dovoljno je da formi za Record Source u Property-ju postavis odgovarajucu tabelu ili mozes za pocetak jednostavnije da pozoves carobnjaka (Form Wizard) za kreiranje forme u kome biras koja ce tabela biti Record Source i koja ce se polja nalaziti na formi a koja se nalaze vec u tabeli.

U prilogu ti je tvoj primer iz prethodnog posta sa formom za unos podataka.
Ako se ne snadjes okaci tvoju bazu pa da resimo problem. ;)


Umem da uradim sa wizardom, nije to poenta, želim da popravim proceduru (ako se tako kaže). Zanima me zašto ne radi ako je OsovinaID autonumber, i kako da napravim da radi (Zašto autonumber polje ne mogu da editujem a number mogu). Bazu kad napravim pomoću wizarda, ne sviđa mi se kako izgleda, ne mogu da radim sitne prepravke i ne znam kako sam je napravila. Ovako učim i VB i Access, uživam u tome a moja forma sve lepše izgleda i sve je funkcionalnija. Ne želim da je napravim pomoću wizarda za 2 minuta, ne želim da je neko drugi napravi... volela bih da naučim da sama napravim neke prostije stvari, a ovo mi deluje veoma prosto.
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 15:15 - pre 118 meseci
Pa AutoNumber ne mozes da editujes iz razloga sto takav tip podatka Access sam kreira time postize da svaki zapis ima razlicitu vrednost pa se zato i preporucuje da se taj tip podatka koristi za Primarni kljuc.
Formu i ako napravis preko Wizarda mozes je prepravljati kako tebi odgovara samo sto je potrebno da formu otvoris u Design modu (desni klik na formu i odaberes Design).
Na ovaj nacin kako ti hoces da uneses podatke u tabelu samo sebi komplikuse izradu baze, za ove tvoje potrebe ti nije neophodno ovako unositi podatke. Ako zelis da naucis Access mogu ti poslati neke tutorijale koji su u PDF-u a koje sam i ja koristio.
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
*.adsl-1.sezampro.rs.



Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 15:59 - pre 118 meseci
Citat:
FOX028: Pa AutoNumber ne mozes da editujes iz razloga sto takav tip podatka Access sam kreira time postize da svaki zapis ima razlicitu vrednost pa se zato i preporucuje da se taj tip podatka koristi za Primarni kljuc.
Formu i ako napravis preko Wizarda mozes je prepravljati kako tebi odgovara samo sto je potrebno da formu otvoris u Design modu (desni klik na formu i odaberes Design).
Na ovaj nacin kako ti hoces da uneses podatke u tabelu samo sebi komplikuse izradu baze, za ove tvoje potrebe ti nije neophodno ovako unositi podatke. Ako zelis da naucis Access mogu ti poslati neke tutorijale koji su u PDF-u a koje sam i ja koristio.


Nekako se ne razumemo. Nije baš da ništa ne znam, vreme prolazi a ja učim, čitam forum, gledam primere na youtube. U davna vremena (80 i neke) sam učika basic na zx spectrumu, kasnije se malo igrala sa MS-Dos C-om. Sada želim da malo naučim da radim u Access-u.

Trenutno sam napravila formu bez wizarda ručno po uzoru na:




Sve funkcioniše sem Edit-a. Da li je moguće uraditi "Edit" ovako ako je ID polje autonumber?
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 17:30 - pre 118 meseci
Kao sto sam ti vec i rekao, nije moguce jer Access sam generise vrednosti za AutoNumber. Ako vec zelis da na taj nacin editujes ili dodajes podatak za to polje moraces da ostavis tip polja da bude Number. Nem svrhe stavljati polje tipa AutoNumber ako vec sama zelis da unosis taj podatak.
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
89.146.182.*

Sajt: www.icentar.ba


+2 Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 17:33 - pre 118 meseci
marija.ana ima pravo.
daleko je bolje napraviti nevezanu formu te prko sql-a vrsiti manipulaciju podacima iz baze.
Zasto je to Bolje?.
Ukoliko imate napr u ovoj tabeli 200 000 redova i ako zelite dopisati samo jos jedan red vi pri podizanju forme podizete svih 200 000 redova koji vam netrebaju i ako se radi u mreznom rezimu onda to bude veoma sporo pa se to pokusava rijesiti MSSQl bazom.
Naravno to ce raditi sporo i Na MSSQL bazi.

U njenom slucaju pri unosu podataka nemate nikakve veze sa tabelom. Tek kada zavrsimo sa pisanjem i kliknemo na komandni taster na kome se nalazi ovaj kod prosleđujemo podatke bazi pomocu pisnog SQL stringa.

Code:
Private Sub cmdAdd_Click()
       If Me.txtID.Tag & "" = "" Then ' Vjerovatno u tag polja txtID  se upisuje Kriterij pretrage  kada se vrsi  donos podataka iz baze.
                                                ' lakse je bilo provjeravati polje txtid  a u njga vrsiti donos podataka ali ne i upisivati u bazu.
                                                ' Ako je uslov ispunjen dopisat ce se novi red podataka u bazu prepisan sa forme
         CurrentDb.Execute "INSERT INTO Osovine (Broj, Godina, Tip, Napomena)" & _
               " VALUES (" & Me.txtbroj & ",'" & Me.txtGodina & "','" & Me.txtTip & "','" & Me.txtNapomena & "')"
     Else
   ' ako nije zadovoljen uslov onda se radi o izmjeni podataka pa prema tome netreba mijenjati kljuc odnosno Id On je samo uslov da se nadje
   ' red u koji treba upisati podatke
         CurrentDb.Execute "UPDATE Osovine " & _
                 " SET Broj='" & Me.txtbroj & "'" & _
                 ", Godina='" & Me.txtGodina & "'" & _
                 ", Tip='" & Me.txtTip & "'" & _
                 ", Napomena='" & Me.txtNapomena & "'" & _
                 " WHERE OsovinaID=" & Me.txtID.Tag
     End If
     cmdClear_Click
     OsovineSubF.Form.Requery
 End Sub

zxz
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
*.adsl-1.sezampro.rs.



Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 20:38 - pre 118 meseci
Hvala izonic to je to.

Sledeci problem koji sam primetila je da kada su sva polja prazna a ja klinkem na dugme Add dobijem gresku "Run-time error '3134': Syntax error in INSERT INTO statement." kako da isključim ovaj error msg ili da stavim neki u kom ja mogu da napišem poruku?
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 21:23 - pre 118 meseci
Mozda ovo posluzi, dodao sam par linija koda na onaj prethodni

Code:
Private Sub cmdAdd_Click()
On Error GoTo Err_Greska    'ako dodje do greske negde u proceduri tok procedure nastavlja od linije Err_Greska
       If Me.txtID.Tag & "" = "" Then ' Vjerovatno u tag polja txtID  se upisuje Kriterij pretrage  kada se vrsi  donos podataka iz baze.
                                                ' lakse je bilo provjeravati polje txtid  a u njga vrsiti donos podataka ali ne i upisivati u bazu.
                                                ' Ako je uslov ispunjen dopisat ce se novi red podataka u bazu prepisan sa forme
         CurrentDb.Execute "INSERT INTO Osovine (Broj, Godina, Tip, Napomena)" & _
               " VALUES (" & Me.txtbroj & ",'" & Me.txtGodina & "','" & Me.txtTip & "','" & Me.txtNapomena & "')"
     Else
   ' ako nije zadovoljen uslov onda se radi o izmjeni podataka pa prema tome netreba mijenjati kljuc odnosno Id On je samo uslov da se nadje
   ' red u koji treba upisati podatke
         CurrentDb.Execute "UPDATE Osovine " & _
                 " SET Broj='" & Me.txtbroj & "'" & _
                 ", Godina='" & Me.txtGodina & "'" & _
                 ", Tip='" & Me.txtTip & "'" & _
                 ", Napomena='" & Me.txtNapomena & "'" & _
                 " WHERE OsovinaID=" & Me.txtID.Tag
     End If
     cmdClear_Click
     OsovineSubF.Form.Requery
Exit Sub

Err_Greska:     'U slucaju greske tok procedure prelazi na ovu liniju i nastavlja odavde dalje
MsgBox Err.Description, vbCritical, "Greska"    'Poruka o gresci, umesto Err.Description mozes upisati neku svoju poruku
End Sub


 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
89.146.182.*

Sajt: www.icentar.ba


+2 Profil

icon Re: Remontovanje železničkih vagona18.07.2014. u 21:26 - pre 118 meseci
Dok pise add vjerovatno sluzi za dodavanje novog rekorda a posto nisi popunila pšredhodni sto si dodala onda prijavi gresku.
Code:
Private Sub cmdAdd_Click()

On error goto Greska
        If Me.txtID.Tag & "" = "" Then ' Vjerovatno u tag polja txtID  se upisuje Kriterij pretrage  kada se vrsi  donos podataka iz baze.
                                                 ' lakse je bilo provjeravati polje txtid  a u njga vrsiti donos podataka ali ne i upisivati u bazu.
                                                 ' Ako je uslov ispunjen dopisat ce se novi red podataka u bazu prepisan sa forme
          CurrentDb.Execute "INSERT INTO Osovine (Broj, Godina, Tip, Napomena)" & _
                " VALUES (" & Me.txtbroj & ",'" & Me.txtGodina & "','" & Me.txtTip & "','" & Me.txtNapomena & "')"
      Else
    ' ako nije zadovoljen uslov onda se radi o izmjeni podataka pa prema tome netreba mijenjati kljuc odnosno Id On je samo uslov da se nadje
    ' red u koji treba upisati podatke
          CurrentDb.Execute "UPDATE Osovine " & _
                  " SET Broj='" & Me.txtbroj & "'" & _
                  ", Godina='" & Me.txtGodina & "'" & _
                  ", Tip='" & Me.txtTip & "'" & _
                  ", Napomena='" & Me.txtNapomena & "'" & _
                  " WHERE OsovinaID=" & Me.txtID.Tag
      End If
      cmdClear_Click
      OsovineSubF.Form.Requery
Izlaz:
Exit sub
Greska:
If err.number=3134 then
Msgbox "Niste popunili podatke"
' ili nista 
else
Msgbox "Ne predviđena greska "  & err.number 
endif
  End Sub

zxz
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
*.adsl-1.sezampro.rs.



Profil

icon Re: Remontovanje železničkih vagona19.07.2014. u 01:00 - pre 118 meseci
Hvala svima.

Sada sam poželela da na dvoklik na zapis u subformi pozovem Edit dugme sa mainforme (tj njegov public sub).

Code:
Public Sub cmdEdit_Click()
    If Not (Me.OsovineSubF.Form.Recordset.EOF And Me.OsovineSubF.Form.Recordset.BOF) Then
        With Me.OsovineSubF.Form.Recordset
            Me.txtID = .Fields("OsovinaID")
            Me.txtbroj = .Fields("Broj")
            Me.txtGodina = .Fields("Godina")
            Me.txtTip = .Fields("Tip")
            Me.txtNapomena = .Fields("Napomena")
            Me.txtID.Tag = .Fields("OsovinaID")
            Me.cmdAdd.Caption = "Update"
            Me.cmdEdit.Enabled = False
        End With
    End If
End Sub





Probala da u subformi stavim na index on dbl click:
Code:
Call Form_OsovineF.cmdEdit


i:

Code:
Call Form_OsovineF.cmdEdit_Click


i ništa se ne dešava... sad razmišljam da li fali neki link criteria ili sam skroz zalutala.
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
37.203.111.*

Sajt: www.icentar.ba


+2 Profil

icon Re: Remontovanje železničkih vagona20.07.2014. u 21:09 - pre 118 meseci
Nije bas da nije izvodivo alinije uobicajeno niti preporucivo da se tako pravi.

Teorija kaze ako je procedura publikovana (Public) da je njen doseg na nivou nase aplikacije sto znaci da je mozemo pozvati sa bilo kojeg mjesta.
U praksi to bas i nije tako.
Ako malo sagledamo nasa forma je objekat za sebe i na njoj imamo modul za pisanje koda.
Taj kod se sav odnosi samo na tu formu sto znaci da je private.

Bolje je napraviti ovako:
Napravi neki Modul i u njemu napravi proceduru te u nju prebaci tvoj kod koji se nalazi na cmdEdit_Click.

E sad ima nesto i u tvom kodu:
If Not (Me.OsovineSubF.Form.Recordset.EOF And Me.OsovineSubF.Form.Recordset.BOF) Then
'Ja bi ovo preveo ovako:
Ako dodje nije kraju i ako je na pocetku rekordseta.
Pretpostavljam da si htjela postaviti uslov da ako nema u recordsetu niti jednog reda.
Ako sam u pravu onda bi to izgledalo ovako:
Code:
Function PopuniPolja()
Dim Frm As Form
Dim Rs As Recordset

Set Frm = Forms![OsovineSubF]
Set Rs = Frm.RecordsetClone
If Rs.EOF And Rs.BOF Then Exit Function
    With Rs
        Frm.txtID = .Fields("OsovinaID")
        Frm.txtBroj = .Fields("Broj")
        Frm.txtGodina = .Fields("Godina")
        Frm.txtTip = .Fields("Tip")
        Frm.txtNapomena = .Fields("Napomena")
        Frm.txtID.Tag = .Fields("OsovinaID")
        Frm.cmdAdd.Caption = "Update"
        Frm.cmdEdit.Enabled = False
    End With
End Function
Private Sub cmdEdit_Click()
call PopuniPolja
End Sub

zxz
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
65.49.14.*



Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 07:07 - pre 118 meseci
Hvala svima, posebno Izonic-u

Ubi me SQL sintaksa, gde bih mogla da naučim malo oko toga (osnove). Celu noć sam pokušavala da napišem jedan red :(

Code:
    If (Me.txtID.Tag & "" = "" And Me.txtDatum.Tag & "" = "") Then
          CurrentDb.Execute "INSERT INTO Dnevnik(OsovinaID, Datum, Stanje, Lokacija, Precnik, Izmene) " & _
                " VALUES (" & Me.txtID & ",'" & Me.txtDatum & "','" & Me.txtStanje & "','" & _
                Me.txtLokacija & "','" & Me.txtPrecnik & "','" & Me.txtIzmene & "')"
    Else
           CurrentDb.Execute "UPDATE Dnevnik " & _
                " SET Datum='" & Me.txtDatum & "'" & _
                ", Stanje='" & Me.txtStanje & "'" & _
                ", Lokacija='" & Me.txtLokacija & "'" & _
                ", Precnik='" & Me.txtPrecnik & "'" & _
                ", Izmene='" & Me.txtIzmene & "'" & _
                " WHERE OsovinaID=" & Me.txtID.Tag & _
                "And Datum=" & Me.txtDatum.Tag
     End If



Krenula da pravim formu za unos podataka u child tabelu (primary je kombinovani osovinaID i Datum) i ubi me ono posle "WHERE" (ne umem pravilno da napišem). Ako bi neko bio voljan da mi popravi ovo i da me uputi gde bih mogla da naučim malo o ovim apostrofima, zarezima, navodnicima i ostalim kukama i kvakama koje mi ne daju da spavam.

Pretpostavljam da sam deo:
Citat:
If (Me.txtID.Tag & "" = "" And Me.txtDatum.Tag & "" = "") Then
pravilno napisala i da je greška u kukama i kvakama posle WHERE.
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 07:42 - pre 118 meseci
Mislim da ti datum pravi problem, trebalo bi da koristis Americki zapis datuma. I meni je to pravilo problem ali kada sam koristio ovaj zapis radilo je OK.
A da bi naucila SQL sintaksu mozes da koristis Access-ove upite (Query), oni su ustvari SQL kod samo sto u Access-u upite mozes da kreiras u Design modu a mozes i kao SQL kod. Kada kreiras upit u Design modu snimi ga i otvori u SQL modu videces SQL kod pa mozes malo da ga analiziras i iz toga naucis sintaksu, pa ako treba mozes taj kod kopiratu u VBA editor i tamo ga koristiti.
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
65.49.14.*



Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 08:42 - pre 118 meseci
Hvala FOX!

Uradila kako Ste mi preporučili . Kada napravim update query i prebacim na SQL View dobijam:

Code:
UPDATE Dnevnik SET Dnevnik.OsovinaID = [Me].[txtID], Dnevnik.Datum = [Me].[txtDatum], Dnevnik.Lokacija = [Me].[txtLokacija], Dnevnik.Precnik = [Me].[txtPriprema], Dnevnik.Izmene = [Me].[txtIzmene]
WHERE (((Dnevnik.OsovinaID)=[Unesi ID]) AND ((Dnevnik.Datum)=[Unesi Datum]));


ali i dalje nigde navodnika a ni format nije kao u onoj proceduri iznad. (a ja i dalje ne znam kako da prebacim ovo u VBA...)
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 09:46 - pre 118 meseci
Kada pokrenes taj upit (Query) koji si napravila da li odradi sve kako treba?

Ako odradi sve kako treba mozes preko VBA pokrenuti taj Query i da izvrsi azuriranje podataka

Code:
DoCmd.OpenQuery "NazivQuery-ja"


Na ovaj nacin uprostis pisanje procedura u VBA i procedure ce ti biti razumljivije.
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 10:44 - pre 118 meseci
Ako bas hoces bez pozivanja Query-ja onda bi kod izgledao ovako:

Code:
Dim Datum As String

'Datum moras zapisati u ovakvom fomratu da bi radilo kako treba
Datum = "#" & Month(Me.txtDatum.Value) & "/" & Day(Me.txtDatum.Value) & "/" & Year(Me.txtDatum.Value) & "#"

CurrentDb.Execute "UPDATE Dnevnik " & _
                "SET Dnevnik.OsovinaID = " & Me.txtID.Value & "," & _
                "Dnevnik.Datum = " & Datum & "," & _
                "Dnevnik.Lokacija = " & Me.txtLokacija.Value & "," & _
                "Dnevnik.Precnik = " & Me.txtPriprema.Value & "," & _
                "Dnevnik.Izmene = " & Me.txtIzmene.Value & "," & _
                "WHERE (((Dnevnik.OsovinaID)= " & Me.txtID.Value & ") " & _
                "AND ((Dnevnik.Datum)= " & Datum & "));"


Ndam se da sam dobro napisao kod s obzirom da nisam imao konkretnu bazu, ako bude bilo problema okaci bazu pa cu ispraviti kod kako treba.
I mislim da bi trebalo da koristis .Value a ne .Tag
Trebalo bi da i tvoj kod radi samo pokusaj da prvo datum konvertujes u format kao sto sam ja to uradio u mom kodu.
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
65.49.14.*



Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 13:01 - pre 118 meseci
Citat:
FOX028:
Ndam se da sam dobro napisao kod s obzirom da nisam imao konkretnu bazu, ako bude bilo problema okaci bazu pa cu ispraviti kod kako treba.
I mislim da bi trebalo da koristis .Value a ne .Tag
Trebalo bi da i tvoj kod radi samo pokusaj da prvo datum konvertujes u format kao sto sam ja to uradio u mom kodu.


Tag koristim da skladištim OsovinaID i Datum (primary key) u slučaju menjanja zapisa. Moj kod ne radi (syntax error) izgrešila sa navodnicima. Evo moje bazice u pokušaju. Ne radi mi Add / Update i Delete u DnevnikF formi.


p.s. auuu muke sa uploadom, jedva nađoh kako, pa zatim i ograničenje. Ne može upload, evo linka

[Ovu poruku je menjao marija.ana dana 21.07.2014. u 14:25 GMT+1]
 
Odgovor na temu

FOX028
Visoka tehnicka skola strukovnih studija
Kosovska Mitrovica

Član broj: 258986
Poruke: 850

Sajt: https://www.zile028.com


+49 Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 17:22 - pre 118 meseci
U proceduri si pozivala neku sub formu DnevnikSubF2 koja uopste ne postoji, u proceduri Add imas nazive nikh polja koja uopste ne postoje na formi. Da bi sve ovo izbegla potrebno je da u VBA editoru odes na Debug=>Compile i ako postoji neka nelogicnost Access ce ti to sam pokazati.
Koliko sam mogao da vidim ti si za jedno dugme htela da ti radi dve funkcije, da dodaje novu stavku i da je azurira nakon editovanja, ako hoces da odradis na taj nacin onda moras u VBA da prvo ispitas koji stoji naziv za taj taster (Add ili Update) i u zavisnosti od toga da zna sta da radi.
U tabeli Dnevnik za Datum tip podataka si stavila Text i ogranicila na 9 karaketra pa ti je datum bio 17.03.201 nedostaje jos jedan karakter, za ovo polje sam ti promenio tip podatka na Date\Time.

Nisam uspeo da odradim onako kako si zapocela vec sam kreirao akcione upite koji se pozivaju iz VBA, kod mene sve radi kako treba. Ndam se da ti odgovara ovako.

Sto se tice velicine baze mozes je smanjiti koriscenjem opcije Compact. Pogledaj sledeci link

http://www.fmsinc.com/microsoftaccess/compact/compact-on-close.html

Pozz


Prikačeni fajlovi
 
Odgovor na temu

marija.ana
Anabela Marijanovic
Umka, Srbija

Član broj: 324047
Poruke: 82
109.121.2.*



Profil

icon Re: Remontovanje železničkih vagona21.07.2014. u 18:09 - pre 118 meseci
Citat:
FOX028: U proceduri si pozivala neku sub formu DnevnikSubF2 koja uopste ne postoji


Dvojka je missclick. Treba samo DnevnikSubF.




Citat:
FOX028: U proceduri Add imas nazive nikh polja koja uopste ne postoje na formi.


To sam copy paste tvoje resenje post iznad a ti si tu permutovao neka polja.


Citat:
FOX028: Da bi sve ovo izbegla potrebno je da u VBA editoru odes na Debug=>Compile i ako postoji neka nelogicnost Access ce ti to sam pokazati.
Sto se tice velicine baze mozes je smanjiti koriscenjem opcije Compact. Pogledaj sledeci link


Hvala ovo mi je bas trebalo.


Citat:
FOX028:Koliko sam mogao da vidim ti si za jedno dugme htela da ti radi dve funkcije, da dodaje novu stavku i da je azurira nakon editovanja, ako hoces da odradis na taj nacin onda moras u VBA da prvo ispitas koji stoji naziv za taj taster (Add ili Update) i u zavisnosti od toga da zna sta da radi.


Nemoguće da ne može da se odradi pomoću VBA. Ovo što je Izonic dao u postu ispred, radi savršeno:

Code:
Private Sub cmdAdd_Click()
    On Error GoTo Greska
            If Me.txtID.Tag & "" = "" Then ' Vjerovatno u tag polja txtID  se upisuje Kriterij pretrage  kada se vrsi  donos podataka iz baze.
                                                     ' lakse je bilo provjeravati polje txtid  a u njga vrsiti donos podataka ali ne i upisivati u bazu.
                                                     ' Ako je uslov ispunjen dopisat ce se novi red podataka u bazu prepisan sa forme
              CurrentDb.Execute "INSERT INTO Osovine (Broj, Godina, Tip, Napomena)" & _
                    " VALUES (" & Me.txtbroj & ",'" & Me.txtGodina & "','" & Me.txtTip & "','" & Me.txtNapomena & "')"
          Else
        ' ako nije zadovoljen uslov onda se radi o izmjeni podataka pa prema tome netreba mijenjati kljuc odnosno Id On je samo uslov da se nadje
        ' red u koji treba upisati podatke
              CurrentDb.Execute "UPDATE Osovine " & _
                      " SET Broj='" & Me.txtbroj & "'" & _
                      ", Godina='" & Me.txtGodina & "'" & _
                      ", Tip='" & Me.txtTip & "'" & _
                      ", Napomena='" & Me.txtNapomena & "'" & _
                      " WHERE OsovinaID=" & Me.txtID.Tag
          End If
          cmdClear_Click
          OsovineSubF.Form.Requery
Izlaz:
    Exit Sub
Greska:
    If Err.Number = 3134 Then
    MsgBox "Niste popunili podatke"
    ' ili nista
    Else
    MsgBox "Ne predvidena greska " & Err.Number
    End If
 End Sub




To mi je u formi osovine ali je tu samo jedno polje primary key i upisuje se WHERE OsovinaID=" & Me.txtID.Tag U formi Dnevnik je procedura drugacija posto je primary kombinovani datum i osovinaID, e sad koliko sam videla radi mi i u formi dnevnik sve sem update zbog onog posle WHERE

U formi Osovine je WHERE OsovinaID=" & Me.txtID.Tag

A u formi Dnevnik je kombinovani primary pa mora da se snima po broju osovine i po datumu. Ja probala WHERE OsovinaID=" & Me.txtID.Tag And Datum=" & Me.txtDatum.Tag al šipak, ne radi a baš sam se zainatila.

Isto tako ni Delete ne umem da napišem u Dnevnik formi zbog Kombinovanog kljuca
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Access :: Remontovanje železničkih vagona

Strane: 1 2 3 4 5 ... Dalje > >>

[ Pregleda: 39037 | Odgovora: 192 ] > FB > Twit

Postavi temu Odgovori

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