Centar za edukaciju-BiH


Stranice (3):1,2,3

#1 14.05.2015 14:07
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Kako napisati SQL u VBA
Imam ovo:

strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND [Broj]>='" & OdBroja2 & "' AND [Broj]<='" & DoBroja2 & "'"

Ovo radi u redu kad je u tabeli kolona Broj numerička ali kad je text polje onda ne radi u redu.
Npr. imam brojeve od 4001 do 4040 on mi filtrira i brojeve 0401 i isto tako 40015 pa dalje.
Probao sam i da napravim query gdje sam napisao val(Broj). Ali ne mogu ni to koristit jer postoje brojevi sa nulom ispred npr.0401, 00502 itd. Zbog toga sam i stavio text polje u tabelu a ne broj.
Imam ovu funkciju koja knjizi zaduzenja:
PreuzmiIzvorni kôd (Text):
  1. On Error GoTo Err_ZaduziPlociceBijela_Click
  2. DoCmd.Hourglass True
  3. Dim OdBroja1 As String
  4. Dim DoBroja1  As String
  5. Dim OdBroja2 As String
  6. Dim DoBroja2  As String
  7. Dim DuzinaNula  As String
  8. Dim DuzinaNulaDo  As String
  9.          Dim Boja1 As Variant
  10.          Dim UlazBr As Variant
  11.          
  12.          Dim BrojObrazca  As Long
  13.          Dim DatZaduz As Date
  14.          Dim BROZAD As String
  15.          Dim FORMATTIPA As String
  16.            
  17.          Dim TipZad As String
  18.          Dim wrk As Workspace
  19.          Dim db As Database
  20.          Dim rstStrevi As DAO.Recordset
  21.          Dim rsRASPONI As DAO.Recordset
  22.          Dim strSQL As String
  23.          
  24.          Dim flgInTrans As Boolean
  25.          flgInTrans = False
  26.          Dim SumID As String
  27.          Dim SumIme As String
  28.          Dim datzad As Date
  29.          
  30.          UlazBr = Forms!frmZaduzenje!Broj & "/" & Forms!frmZaduzenje!Godina
  31.          SumID = Forms!frmZaduzenje!SumarID
  32.          SumIme = Forms!frmZaduzenje!SumarIme.Column(1)
  33.          datzad = Forms!frmZaduzenje!Datum
  34.             DuzinaNula = Forms!frmZaduzenje!FormatOd
  35.             DuzinaNulaDo = Forms!frmZaduzenje!FormatBrojaDo
  36.     'sad dolazi upis u tablicu
  37.        
  38.          Set wrk = DBEngine.Workspaces(0)
  39.          Set db = CurrentDb
  40.          wrk.BeginTrans
  41.          flgInTrans = True
  42.          'Set rstStrevi = db.OpenRecordset("tblPlocice", dbOpenDynaset, dbAppendOnly)
  43.          'Set rstStrevi = db.OpenRecordset("tblPlocice", dbOpenDynaset)
  44.          
  45.          'generira i upisuje recorde u bazu prema podacima uneÅ¡enim na formu
  46.     If Forms!frmZaduzenje!chkBijela = -1 Then
  47.          OdBroja1 = Forms!frmZaduzenje!OdBijela
  48.          DoBroja1 = Forms!frmZaduzenje!DoBijela
  49.          OdBroja2 = Format$((OdBroja1), DuzinaNula)
  50.          DoBroja2 = Format$((DoBroja1), DuzinaNulaDo)
  51.          Boja1 = "Bijela"
  52.          
  53.          
  54.           strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND Val([Broj])>='" & OdBroja2 & "' AND Val([Broj])<='" & DoBroja2 & "'"
  55.          'strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND [Broj]>='" & Val(OdBroja1) & "' AND [Broj]<='" & Val(DoBroja1) & "'"
  56.          'strSQL = "SELECT * FROM QryBijela" 'WHERE [Boja]='" & "Bijela" & "' AND [Broj]>='" & Format$((OdBroja1), DuzinaNula) & "' AND [Broj]<='" & Format$((DoBroja1), DuzinaNulaDo) & "'"
  57.          Set rstStrevi = db.OpenRecordset(strSQL, dbOpenDynaset)
  58.    
  59.           With rstStrevi
  60.          .MoveFirst
  61.           Do While Not .EOF
  62.           .Edit         'obavezno na po
  63. etku za dodavanje
  64.            
  65.                 rstStrevi!BrojZaduzenja = UlazBr
  66.                 rstStrevi!DatumZaduzenja = datzad
  67.                 rstStrevi!SumarZaduzenja = SumID
  68.                 rstStrevi!SumarImeZaduzenja = SumIme
  69.                 rstStrevi!Status = "Z"
  70.          .Update
  71.          .MoveNext
  72.          Loop
  73.          End With
  74.          rstStrevi.Close
  75.    End If 'kraj za Bijele
  76.           wrk.CommitTrans
  77.           flgInTrans = False
  78.           DoCmd.Hourglass False
  79.          
  80.          
  81. Exit_ZaduziPlociceBijela_Click:
  82. DoCmd.Hourglass False
  83.     Exit Sub
  84.  
  85. Err_ZaduziPlociceBijela_Click:
  86. If flgInTrans Then
  87.                 wrk.Rollback
  88.             End If
  89. MsgBox "Brojevi Bijelih plo
  90. ica koje ste upisali nisu zaduženi ili ne postoje u bazi podataka!", vbExclamation, "Greška Bijelih plo
  91. ica"
  92.                 DoCmd.Hourglass False
  93.                 Me.OdBijela = 0
  94.                 Me.DoBijela = 0
  95.                 Me.UkupnoBijela = 0
  96.  Me.UkupnoPlocica = Me.UkupnoPlava + Me.UkupnoBijela + Me.UkupnoCrvena + Me.UkupnoCrna + Me.UkupnoNarandza + Me.UkupnoZelena + Me.UkupnoZuta
  97.  'DoCmd.SetWarnings False
  98.             'DoCmd.RunSQL "UPDATE tblStaIzd SET Kolicina='" & KollNov & "' WHERE BrArt='" & Me.BrojArtikla & "' AND Brojizd='" & Me.Broj & "'"
  99.             'DoCmd.RunSQL "UPDATE tblStaIzd SET Cijena='" & Me.Cijena & "' WHERE BrArt='" & Me.BrojArtikla & "' AND Brojizd='" & Me.Broj & "'"
  100.             'DoCmd.RunSQL "UPDATE tblStaIzd SET Ukupno='" & Uk & "' WHERE BrArt='" & Me.BrojArtikla & "' AND Brojizd='" & Me.Broj & "'"
  101.             'DoCmd.RunSQL "UPDATE tblStaIzd SET UkupnoMP='" & UKMP & "' WHERE BrArt='" & Me.BrojArtikla & "' AND Brojizd='" & Me.Broj & "'"
  102. 'DoCmd.SetWarnings True
  103.     Resume Exit_ZaduziPlociceBijela_Click
  104. End Sub

Miro
↑  ↓

#2 14.05.2015 14:17
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Kako napisati SQL u VBA
Dali proba so Between funkcija kako ke se ponasa ova:
[Broj]>='" & OdBroja2 & "' AND [Broj]<='" & DoBroja2 & "'"
da go zamenis so
Between OdBroja2 AND DoBroja2
↑  ↓

#3 14.05.2015 14:30
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Re: Kako napisati SQL u VBA
Nisam probo
Kako ću to napisat. Gdje ću stavit betwen
Miro
↑  ↓

#4 14.05.2015 14:40
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Kako napisati SQL u VBA
miro ako ti neuspije sa ovim predhodnim imam ti ja rješenje samo mi postavi primjer da ti mogu doraditi sa tabelama i formama
↑  ↓

#5 14.05.2015 14:42
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Kako napisati SQL u VBA
evo ti ga

strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND Between " & OdBroja2 & "AND " & DoBroja2
↑  ↓

#6 14.05.2015 14:43
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Re: Kako napisati SQL u VBA
Probat ću hvala ti
Miro
↑  ↓

#7 14.05.2015 14:54
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Postovi:608


Predmet:Re: Kako napisati SQL u VBA
Znači imam ovo:
strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND [Broj]>='" & OdBroja2 & "' AND [Broj]<='" & DoBroja2 & "'"

Trebam na ovo dodati Between

strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND [Broj]>=Between'" & OdBroja2 & "' AND [Broj]<='" & DoBroja2 & "'"

Ovo ne prolazi
Miro
↑  ↓

#8 14.05.2015 15:17
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Kako napisati SQL u VBA
evo ti ga

strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND Between " & OdBroja2 & "AND " & DoBroja2
↑  ↓

#9 14.05.2015 15:20
kenan Van mreze
Clan
Registrovan od:10.02.2011
Postovi:191


Predmet:Re: Kako napisati SQL u VBA
greška evo ispravljen falilo polje koje da gleda

strSQL = "SELECT * FROM tblPlocice WHERE [Boja]='" & "Bijela" & "' AND broj Between " & OdBroja2 & " AND " & DoBroja2
↑  ↓

#10 14.05.2015 15:23
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Kako napisati SQL u VBA
Ovde mene nesto ne mi e jasno kakov parametar e " OdBroja2 "
bidejki ti prebaruvas od OdBroja2 do OdBroja2 , a ako e ova edno pole toa e isto kako da si stavil

Broj=OdBroja2

za Between da koristis ti trebaat dva parametri na primer : Between " & OdBroja1 & "AND " & DoBroja2
↑  ↓

Stranice (3):1,2,3


Sva vremena su GMT +02:00. Trenutno vrijeme: 11: 15 pm.