Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » Pomoć oko sintaxe SQL i Procedure
mario 26.04.2011 14:20
Predmet:Pomoć oko sintaxe SQL i Procedure

Moram se ispričati ZZZ. Otvorio sam novu TEMU ni sam neznajući kako da je nazovem. Pregledavam danima VaÅ¡e primjere međutim nisam naiÅ¡ao na neÅ¡to slićno.
U ovih par dana sam puno toga prokljuvio i napravio u svom programu.
Može mi neko pomoći napisati proceduru
imam tablicu pila, polja -- DatumPiljenja, VrijemePiljenja
Forma ima dva polja---Datum, UkupnoVrijeme --- ' nevezana s tablicom
Htio bih da iz tablice dobijem u polje UkupnoVrijeme, sumu VrijemePiljenja kada je DatumiPiljenja=datum
Private Sub Form_Load()
Dim strSQL As String
Dim strSQl As String
Dim Db As Database
strSQL = "SELECT sum(pila.VrijemePiljenja) FROM Pila WHERE pila.DatumPiljenja=Me.Datum
GROUP BY pila.DatumPiljenja ' Ovako bih to napisao u SQL
Set baza = CurrentDb
Set Rs = Db.OpenRecordset(strSQL) ' Nisam siguran ide li nakon prijave Recordset i
Me.suma = Rs
End Sub

zxz 26.04.2011 17:07
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

U cemu ti je ovo Vrijeme piljenja.
Jeli polje broj ili date time.
Ovo je bitno za izracunavanje.
U principu si treba samo zapisati pocetak i kraj piljenja i sve bi bilo ok.

mario 26.04.2011 18:09
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

VrijemePiljenja je broj
Svaki dan se unose nalozi i djelatnici prave raspored kada će Å¡to ići na piljenje ili na neku drugu obradu.
Da bi nešto stavili za petak moraju znati koliko u petak ima piljenja odnosno slobodnog vremena.
Napravio sam ja to preko Subforme odnosno Queria, ali to mi iozgleda ružno, a i troši resurce.
To je bilo ono pitanje kako napraviti formu za taj pregled od prije par dana.
Sada bih to pojednostavio. Postavio bih formu koja bi u stupcima osnosno kolonama 14 kol. imala datum (14 dana unaprijed od trenutačnog) a ispod toga vremena obrade(piljenja) na pojedinom stroju.
Hvala

zxz 26.04.2011 19:42
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Funcion VrijemePiljenja(DanP as Date)
Dim Db as Database
Dim SQL as string
Dim Rs as Recordset
Dim DatumS as string

DatumS= "#" & Rormat(DanP,"mm-dd-yyyy") & "#"
SQL=T "SELECT sum(VrijemePiljenja) As V FROM Pila WHERE DatumPiljenja=" & Me.Datum

Set DB=Currentdb()
Set Rs= Db.Openrecordset(SQL)
VrijemePiljenja=Rs.Fields(0)
Rs.Close
Set Db=nothing
End function

Frnkciju Mozemo pozvati bilo odakle.

Napisao sam je ovdje pa je moguce da ima gresaka.
Ukoliko ti ne bude islo napisi samo imetabele i imena polja u tabeli iz koje ovo vadis.
Sretan rad.

mario 26.04.2011 20:29
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Hvala na odgovoru. Baš ne ide
Polja u tablici ( Pila), DatumPiljenja (za grupiranje-uvjet), VrijemePiljenja (suma)
U formi polja datum (bez baze-tu sam postavio default vrijednost Date(), Date()+1 itd ), vrijeme (bez baze- tu dolazi suma VrijemePiljenja iz baze).
Proceduru bih stavio u LoadForm.
Danas sam uspio poezati Oracl bazu Access odnosno kombinacija podataka iz Oracla i Accessa ćine čuda.

zxz 26.04.2011 20:52
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Proceduru stavi u neki modul.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function VrijemePiljenja(DanP As Date)
  2.  Dim Db As Database
  3.  Dim SQL As String
  4.  Dim Rs As Recordset
  5.  Dim DatumS As String
  6.  
  7. if  Format$(DanP)="" goto Kraj
  8.  DatumS = "#" & Format(DanP, "mm-dd-yyyy") & "#"
  9.  SQL = "SELECT sum(VrijemePiljenja) As V FROM Pila WHERE DatumPiljenja=" & DatumS
  10.  
  11.  Set Db = CurrentDb()
  12.  Set Rs = Db.OpenRecordset(SQL)
  13.  VrijemePiljenja = Rs.Fields(0)
  14.  Rs.Close
  15.  Set Db = Nothing
  16. Kraj:
  17.  End Function

Ako imas na formi polje za datum koje se zove datum i polje vrijeme koje se zove vrijeme onda na control soure poljaverijem upisi ovo:
=VrijemePiljenja([Datum])

mario 26.04.2011 21:24
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Function VrijemePiljenja(DanP As Date)
Dim Db As Database
Dim SQL As String
Dim Rs As Recordset
Dim DatumS As String
If Format$(DanP) = "" Then GoTo Kraj
DatumS = "#" & Format(DanP, "mm-dd-yyyy") & "#"
SQL = "SELECT sum(VrijemePiljenja) As V FROM Pila WHERE DatumPiljenja=" & DatumS
Set Db = CurrentDb()
Set Rs = Db.OpenRecordset(SQL) ---- JAVLJA GREÅ KU PRILIKOM COMPILACIJE
VrijemePiljenja = Rs.Fields(0)
Rs.Close
Set Db = Nothing
Kraj:
End Function

zxz 26.04.2011 21:36
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Eh onda ces morati nakaciti primjer samo sa tom tabelom i tom tvojom formom.

mario 26.04.2011 22:32
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Hvala. Super u probnoj formi je dobro ispalo
Kako bi to ispalo kada bi se datumS pozivao na Datum_1.
Može li se to riješiti bez Control Source odnosno preko Me.Vrijeme=RS
Mora li se procedura pisati za svaki datum,
odnosno kad bi se pisalo na npr. ON_CLICK na nekom Fieldu.
Još jednom Hvala
Prilozi:
Proba_pila1.zip (Velicina datoteke:20.52 KB)

zxz 27.04.2011 00:10
Predmet:Re: Pomoć oko sintaxe SQL i Procedure

Evo ja mislim da je to ono sto ti treba.
Prilozi:
Proba_pilaz.zip (Velicina datoteke:21.62 KB)