Prikazi cijelu temu 14.05.2015 14:07
miro35 Van mreze
Clan
Registrovan od:05.01.2009
Lokacija:-


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