RUN-TIME ERROR HELP ME

MICAIU 06/04/2010 22:22:24
#338734
Instrução SQL invalida, DELETE,INSERT,PROCEDURE, SELECT ou UPDATE esperado.

Abaixo meu codigo:

Dim cnn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim rsconfig As New ADODB.Recordset
Dim rstemp As New ADODB.Recordset
Dim sql As String
Dim caminho As String


caminho = App.Path & [Ô]\\BDpizza.mdb[Ô]
cnn.Provider = [Ô]Microsoft.Jet.OLEDB.4.0[Ô]
cnn.Open caminho
rs1.Open [Ô]tbltransa[Ô], cnn, adOpenStatic
rs2.Open [Ô]tblcontas[Ô], cnn, adOpenStatic
rsconfig.Open [Ô]empresa[Ô], cnn, adOpenStatic
rstemp.Open [Ô]sql[Ô], cnn, adOpenStatic <<<<<<<<<<<<<<<<linha com o erro.
XXXANGELSXXX 07/04/2010 00:18:52
#338736
Amigo, posso dar uma sugestão? porque voce coloca o banco na mesma pasta da aplicação? e se for uma aplicação multi usuaria ou seu cliente te perguntar se tem como trabalhar em rede, ai vc vai ficar com carão.. rs.. isso e normal, ja passei por isso, aqui, eu utilizo arquivo INI para acesso ao banco de dados, se quiser minha dica.. veja que legal..

num modulo

Public cn As New Connection
Public sCn As String
Public RS As New Recordset

Public Function ConectarBDados() As Boolean
Dim Caminho As String
On Error GoTo erro
Caminho = ReadINI([Ô]Geral[Ô], [Ô]Caminho[Ô], App.Path & [Ô]\Config.ini[Ô])
sCn = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & Caminho & [Ô];Persist Security Info=False;Jet OLEDB database[Ô]
Set cn = New Connection
cn.Open sCn
ConectarBDados = True
Exit Function
erro:
ConectarBDados = False

End Function


Chamando a Funcao para fazer os processos

If ConectarBDados Then
Set RS = New ADODB.Recordset
strsql = [Ô]select * from Tabela[Ô]
RS.CursorLocation = adUseClient
RS.Open strsql, cn, adOpenDynamic, adLockBatchOptimistic

Coloque a funcao que quer fazer.. e no fim para fechar o if do conectarbdados


RS.Close
Set RS = Nothing
Else
cn.Close
Set cn = Nothing
End If

Ok??? qualquer duvida posta ai.. abraçao.
XXXANGELSXXX 07/04/2010 00:20:54
#338737
Ha.. esqueci de postar as funçes que fazem o processo da leitura do arquivo INI. no modulo tb.


Declare Function WritePrivateProfileString Lib [Ô]Kernel32[Ô] Alias [Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileString Lib [Ô]Kernel32[Ô] Alias [Ô]GetPrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Public Function ReadINI(Section As String, Key As String, FileName As String)
Dim retlen As String
Dim Ret As String
Ret = String$(255, 0)
retlen = GetPrivateProfileString(Section, Key, [Ô][Ô], Ret, Len(Ret), FileName)
Ret = Left$(Ret, retlen)
ReadINI = Ret
End Function

MICAIU 07/04/2010 00:22:18
#338738
Maravilha, vou aceitar sim sua dica, muito bom msm,, será q c eu fizer assim akele erro pode sumir????
Abrasss
XXXANGELSXXX 07/04/2010 00:25:01
#338739
Com certeza ira sumir.. amigo.. tenho varios programas que funcionam assim, banco de dados local e coisa de mono usuário.. ou seja, coisa do passado.. quando trabalhavamos com arquivos não relacionais como por exemplo DBF, hoje mesmo o acces nao sendo considerado multi usuario pode -se trabalhar com ele neste modo .. logico fazendo os bloqueios devidos nos momentos certos.. qualquer coisa pode me add no msn ai.. valter@vilanova.inf.br.. abraçao..
Tópico encerrado , respostas não são mais permitidas