miro35 07.09.2016 10:46
Predmet:On error resume next

Zanima me kako najbolje napisati kod za error kada tabela nije na mreži odnosno nije linkovana sa mreže iz koje brišem podatak sa ovim kodom
PreuzmiIzvorni kôd (Text):
  1. DoCmd.SetWarnings False
  2. DoCmd.RunSQL "DELETE FROM tblMrezaVozila WHERE SifraVozila='" & Me.SifraVozila & "' AND OrgJedinica='" & Me.SifOrg & "' "
  3. DoCmd.SetWarnings True
Znači želim da mi javi poruku da server ne radi, i da nakon te poruke nastavi sa izvrÅ¡avanjem koda

zxz 07.09.2016 12:42
Predmet:Re: On error resume next

Eh da si postavio i kod za konekciju mogao bih i detaljnije .

On error resume next
'tvojkod gdje ocekujes gresku
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM tblMrezaVozila WHERE SifraVozila='" & Me.SifraVozila & "' AND OrgJedinica='" & Me.SifOrg & "' "
DoCmd.SetWarnings True
' sad dolazi
If err.number> 0 then
'neka napomena ako treba
err.clear
on error goto 0
' neki kod koji treba da radi kada se pojavi greska
else
' neki kod kada se ne pojavi greska
endif

Trebalo bi i presresti tacan broj greske ali nemogu biti konkretniji zato sto nemam kod o tvoje konekcije.

Konekcija je najbolje da je zasebna procedura i da vraca true ili false i onda ti i netreba ovo gore.

zxz 07.09.2016 13:27
Predmet:Re: On error resume next

PreuzmiIzvorni kôd (Visual Basic):
  1. Function KonSQL() As Boolean
  2.     Dim Kon As ADODB.Connection
  3.     Dim KonStr As String
  4.  
  5. On Error Resume Next
  6.     KonStr = "Provider=SQLOLEDB;Data Source=ImeServeraILIIP;" & _
  7.                   "Initial Catalog=IMeBaze;" & _
  8.                   "Integrated Security=SSPI;"
  9.     Set Kon = New ADODB.Connection
  10.     Kon.Open KonStr
  11.     If Err.Number <> 0 Then
  12.     Err.Clear
  13.     On Error GoTo 0
  14.     KonSQL = False
  15.     Else
  16.     KonSQL = True
  17.     End If
  18. End Function

U tvom slucaju var Kon vjerovatno treba biti javna pa je stavi na vrh nekog modula i proglasi javnom ili napravi klasu.

Gjoreski 07.09.2016 22:38
Predmet:Re: On error resume next

PreuzmiIzvorni kôd (Visual Basic):
  1. Set cn = New ADODB.Connection
  2.      
  3.  
  4.  If ReadIniValue(App.path & "\METMG.ini", "Baza", "TipBaza") = 1 Then
  5.     ' My SQL server
  6.     cn.ConnectionString = "Driver={Mysql ODBC 5.1 Driver}; Server=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "Server") & _
  7.                            ";port=3306; database=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "BazaDB") & _
  8.                            "; user=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "User") & _
  9.                            "; password=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "Password") & "; option=3;"
  10.       DA = 1
  11.       NE = 0
  12.      '---------------------------------------------------------------------------------------
  13.  ElseIf ReadIniValue(App.path & "\METMG.ini", "Baza", "TipBaza") = 2 Then
  14.      '--------------------------  SHAPE SQL Server 2000 / 2005  so INI File  -----------------------------
  15.    
  16.     If ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "Password") = "" Then Pass = ""
  17.     If ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "Password") <> "" Then Pass = Enc.Decode64(ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "Password"))
  18.      
  19.      cn.ConnectionString = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;Driver={SQL Server};Server=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "Server") & _
  20.                            ";Database=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "BazaDB") & _
  21.                            ";Uid=" & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "User") & _
  22.                            ";Pwd=" & Pass & ";"
  23.       DA = 1
  24.       NE = 0
  25.      '---------------------------------------------------------------------------------------
  26.  ElseIf ReadIniValue(App.path & "\METMG.ini", "Baza", "TipBaza") = 3 Then
  27.      '--------------------------  SHAPE MsAccess -------------------------------------------
  28.     Baza = ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "PatekaBaza") & ReadIniValue(App.path & "\METMG.ini", "ServerSetup", "BazaDB") & ".mdb"
  29.      cn.ConnectionString = "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Baza & ";"
  30.      '---------------------------------------------------------------------------------------
  31.      DA = True
  32.       NE = False
  33.  
  34.   End If
  35.  
  36.    cn.Open
  37. If cn.State = adStateOpen Then
  38.     Call Postavi_Parametri
  39.  
  40.     'frmLogin.Show
  41.    'frmManu.Show
  42.    frmTest.Show
  43.  ''  ActivateKeyboardLayout MKD, False
  44. End If
  45.  
  46. Main_Exit:
  47.    Exit Sub
  48.  
  49. Error_Main:
  50.  
  51. If Err <> 0 And Err <> -2147217843 And Err <> -2147467259 Then MsgBox Err & "  -->>>  " & Error(Err)
  52.  
  53. If Err = -2147217843 Then
  54.     Call MsgBox("problem so povrzuvajne na serverot ", vbOKOnly + vbCritical + vbApplicationModal + vbDefaultButton1, "info")
  55.     frmParametri.Show
  56.     Resume Main_Exit:
  57. End If
  58.  
  59. If Err = -2147467259 Then
  60.     Call MsgBox("bazata ne e povrzana ili ne posoi na serverot  ", vbOKOnly + vbCritical + vbApplicationModal + vbDefaultButton1, "info")
  61.     frmParametri.Show
  62.     Resume Main_Exit:
  63. End If

miro35 15.09.2016 12:50
Predmet:Re: On error resume next

Znaci trebao bih provjeriti da li je ova tabela "tblMrezaVozila" umrezena odnosno ulinkovana pa onda da dopusti insert u nju a ako nijesamo da javi da nije na mrezi i onda nastavi dalje sa izvrsavanjem koda.
Imate li neku funkciju jednostavnu da pozovem da izvrsi provjeru.