said99 Postado Julho 12, 2006 Denunciar Share Postado Julho 12, 2006 '*****************************************************************************************'Exemplo: - Arquivo Inss.mdb' - Tabela tblTeste' - Campos Ident - Texto, tamanho 10' - AnoNasc - Texto, tamanho 4)''Usando a primeira variável cAux: apresenta o ERRO --> função 'fTst' indefinida na expressão'Usando a segunda variável cAux: não apresenta Erro. Exeção normal no comando Clicado.''FUNCIONA NO ACCESS MAS NÃO FUNCIONA NO VB6''Preciso usar uma função com a escrita parecida com o primeiro cAux.'ONDE ESTÁ O ERRO?'obs: para usar a 1ª var. cAux, tiro o '(comentário) e coloco na 2ª var cAux e vice-versa.'HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP.'-----------------------------------------------------------------------------------------------------Option ExplicitPrivate Sub Command1_Click() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim cEnder As String Dim cAux As String cEnder = "C:\testes\Inss.mdb" 'cAux = "SELECT Ident, AnoNasc, fTst(AnoNasc) FROM ApN032006 WHERE fTst(AnoNasc)=true" cAux = "SELECT Ident, AnoNasc FROM tblTeste" Set cn = New ADODB.Connection With cn .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cEnder .Provider = adUseClient .Open End With Set rs = New ADODB.Recordset With rs .CursorLocation = adUseClient .LockType = adLockReadOnly .CursorType = adOpenStatic .Open cAux, cn End With Do While Not rs.EOF If fTst(rs!AnoNasc) = True Then Debug.Print rs!AnoNasc, fTst(rs!AnoNasc) rs.MoveNext Loop rs.Close Set rs = Nothing cn.Close Set cn = NothingEnd Sub'*******************************************Public Function fTst(cAnoNasc As String) As Boolean Dim nAnoNasc As Integer nAnoNasc = CInt(cAnoNasc) fTst = IIf(nAnoNasc Mod 2 = 0, -1, 0)End Function Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 12, 2006 Denunciar Share Postado Julho 12, 2006 se a funcao esta declarada no visual basic, o access não tem como acessar. assim acho que funciona:SELECT Ident, AnoNasc, IIf(CInt(ApN032006.AnoNasc) Mod 2 = 0, -1, 0) As nAnoNasc FROM ApN032006 WHERE IIf(CInt(AnoNasc) Mod 2 = 0, -1, 0)=true Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
said99
'*****************************************************************************************
'Exemplo: - Arquivo Inss.mdb
' - Tabela tblTeste
' - Campos Ident - Texto, tamanho 10
' - AnoNasc - Texto, tamanho 4)
'
'Usando a primeira variável cAux: apresenta o ERRO --> função 'fTst' indefinida na expressão
'Usando a segunda variável cAux: não apresenta Erro. Exeção normal no comando Clicado.
'
'FUNCIONA NO ACCESS MAS NÃO FUNCIONA NO VB6
'
'Preciso usar uma função com a escrita parecida com o primeiro cAux.
'ONDE ESTÁ O ERRO?
'obs: para usar a 1ª var. cAux, tiro o '(comentário) e coloco na 2ª var cAux e vice-versa.
'HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP. HELP.
'-----------------------------------------------------------------------------------------------------
Option Explicit
Private Sub Command1_Click()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cEnder As String
Dim cAux As String
cEnder = "C:\testes\Inss.mdb"
'cAux = "SELECT Ident, AnoNasc, fTst(AnoNasc) FROM ApN032006 WHERE fTst(AnoNasc)=true"
cAux = "SELECT Ident, AnoNasc FROM tblTeste"
Set cn = New ADODB.Connection
With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cEnder
.Provider = adUseClient
.Open
End With
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.LockType = adLockReadOnly
.CursorType = adOpenStatic
.Open cAux, cn
End With
Do While Not rs.EOF
If fTst(rs!AnoNasc) = True Then Debug.Print rs!AnoNasc, fTst(rs!AnoNasc)
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
'*******************************************
Public Function fTst(cAnoNasc As String) As Boolean
Dim nAnoNasc As Integer
nAnoNasc = CInt(cAnoNasc)
fTst = IIf(nAnoNasc Mod 2 = 0, -1, 0)
End Function
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.