ERRO FUNCAO PESQUISAR POR DATA
Função:
Public Sub localizardata()
On Error GoTo localizardata_ERRO
Dim row As Single
Dim loccont As String
strSQL = [Ô]SELECT * FROM INFORMATICA.sgqfneqfd[Ô]
Set oconn = New ADODB.Connection
oconn.Open [Ô]DSN=CHB_ORA;UID=informatica;pwd=******;server=dpitang[Ô]
With rs
.CursorType = adOpenForwardOnly
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.Source = [Ô]SELECT * FROM INFORMATICA.sgqfneqfd WHERE (DATA BETWEEN to_date([ô][Ô] & FormatarDataOracle(Format(txtdata.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô]) AND to_date([ô][Ô] & FormatarDataOracle(Format(txtdatatwo.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô])) AND CLASSIFICACAO = SUBSTR([ô][Ô] & cboclassificacao.Text & [Ô][ô],1,1) ORDER BY DATA,ID;[Ô]
.ActiveConnection = oconn
.Open
If Not temregistro(rs) Then
DataGrid.Clear
DataGrid.Rows = 2
oconn.Close
Exit Sub
End If
If .BOF = True And .EOF = True Then Exit Sub
DataGrid.Rows = .RecordCount + 1
Do Until .EOF = True
row = row + 1
DataGrid.Col = 0
DataGrid.row = row
DataGrid.TextMatrix(row, 0) = !ID & [Ô][Ô]
DataGrid.TextMatrix(row, 1) = !data & [Ô][Ô]
DataGrid.TextMatrix(row, 2) = !codforn & [Ô][Ô]
DataGrid.TextMatrix(row, 3) = !descriforn & [Ô][Ô]
DataGrid.TextMatrix(row, 4) = !indqualif & [Ô][Ô]
DataGrid.TextMatrix(row, 7) = !nivdesemp & [Ô][Ô]
DataGrid.TextMatrix(row, 5) = !qtdade & [Ô][Ô]
DataGrid.TextMatrix(row, 6) = !demerito & [Ô][Ô]
If DataGrid.TextMatrix(row, 7) < 60 Then
DataGrid.Col = 7
DataGrid.CellBackColor = &HC0C0FF
ElseIf DataGrid.TextMatrix(row, 7) < 80 Then
DataGrid.Col = 7
DataGrid.CellBackColor = &HC0FFFF
Else
DataGrid.Col = 7
DataGrid.CellBackColor = &HC0FFC0
End If
DataGrid.TextMatrix(row, 4) = !indqualif & [Ô] %[Ô]
DataGrid.TextMatrix(row, 7) = !nivdesemp & [Ô] %[Ô]
.MoveNext
Loop
End With
DataGrid.row = 1
oconn.Close
localizardata_ERRO:
MsgBox [Ô][[Ô] & Err.Number & [Ô] ] [Ô] & Err.Description, vbInformation, [Ô]Erro de existência de dados cadastrados[Ô]
End Sub
Este sistema funciona perfeitamente, sem erros nos micros onde está instalado, exceto nesse micro, onde dei print. O que pode ser? Alguém já viu isso antes? Já verifiquei as configurações de idioma e o formato de data e hora do sistema... Tudo está certo.
Public Sub localizardata()
On Error GoTo localizardata_ERRO
Dim row As Single
Dim loccont As String
strSQL = [Ô]SELECT * FROM INFORMATICA.sgqfneqfd[Ô]
Set oconn = New ADODB.Connection
oconn.Open [Ô]DSN=CHB_ORA;UID=informatica;pwd=******;server=dpitang[Ô]
With rs
.CursorType = adOpenForwardOnly
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.Source = [Ô]SELECT * FROM INFORMATICA.sgqfneqfd WHERE (DATA BETWEEN to_date([ô][Ô] & FormatarDataOracle(Format(txtdata.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô]) AND to_date([ô][Ô] & FormatarDataOracle(Format(txtdatatwo.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô])) AND CLASSIFICACAO = SUBSTR([ô][Ô] & cboclassificacao.Text & [Ô][ô],1,1) ORDER BY DATA,ID;[Ô]
.ActiveConnection = oconn
.Open
If Not temregistro(rs) Then
DataGrid.Clear
DataGrid.Rows = 2
oconn.Close
Exit Sub
End If
If .BOF = True And .EOF = True Then Exit Sub
DataGrid.Rows = .RecordCount + 1
Do Until .EOF = True
row = row + 1
DataGrid.Col = 0
DataGrid.row = row
DataGrid.TextMatrix(row, 0) = !ID & [Ô][Ô]
DataGrid.TextMatrix(row, 1) = !data & [Ô][Ô]
DataGrid.TextMatrix(row, 2) = !codforn & [Ô][Ô]
DataGrid.TextMatrix(row, 3) = !descriforn & [Ô][Ô]
DataGrid.TextMatrix(row, 4) = !indqualif & [Ô][Ô]
DataGrid.TextMatrix(row, 7) = !nivdesemp & [Ô][Ô]
DataGrid.TextMatrix(row, 5) = !qtdade & [Ô][Ô]
DataGrid.TextMatrix(row, 6) = !demerito & [Ô][Ô]
If DataGrid.TextMatrix(row, 7) < 60 Then
DataGrid.Col = 7
DataGrid.CellBackColor = &HC0C0FF
ElseIf DataGrid.TextMatrix(row, 7) < 80 Then
DataGrid.Col = 7
DataGrid.CellBackColor = &HC0FFFF
Else
DataGrid.Col = 7
DataGrid.CellBackColor = &HC0FFC0
End If
DataGrid.TextMatrix(row, 4) = !indqualif & [Ô] %[Ô]
DataGrid.TextMatrix(row, 7) = !nivdesemp & [Ô] %[Ô]
.MoveNext
Loop
End With
DataGrid.row = 1
oconn.Close
localizardata_ERRO:
MsgBox [Ô][[Ô] & Err.Number & [Ô] ] [Ô] & Err.Description, vbInformation, [Ô]Erro de existência de dados cadastrados[Ô]
End Sub
Este sistema funciona perfeitamente, sem erros nos micros onde está instalado, exceto nesse micro, onde dei print. O que pode ser? Alguém já viu isso antes? Já verifiquei as configurações de idioma e o formato de data e hora do sistema... Tudo está certo.
Verifique a sintaxe da função [Ô]TO_DATE[Ô] do oracle, você a está usando de forma errada.
KERPLUNK, na verdade, este sintaxe só coloquei para tentar resolver o problema, com ou sem ela o erro continua.
A primeira coisa a ser feita é parametrizar o seu comando SQL, isso vai facilitar muito e tornar mais seguro.
Segue meu select ajustado.
.Source = [Ô]SELECT * FROM INFORMATICA.sgqfneqfd WHERE (DATA BETWEEN [ô][Ô] & FormatarDataOracle(Format(txtdata.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô] AND [ô][Ô] & FormatarDataOracle(Format(txtdatatwo.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô]) AND CLASSIFICACAO = SUBSTR([ô][Ô] & cboclassificacao.Text & [Ô][ô],1,1) ORDER BY DATA,ID;[Ô]
.Source = [Ô]SELECT * FROM INFORMATICA.sgqfneqfd WHERE (DATA BETWEEN [ô][Ô] & FormatarDataOracle(Format(txtdata.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô] AND [ô][Ô] & FormatarDataOracle(Format(txtdatatwo.Text, [Ô]dd/mm/yyyy[Ô])) & [Ô][ô]) AND CLASSIFICACAO = SUBSTR([ô][Ô] & cboclassificacao.Text & [Ô][ô],1,1) ORDER BY DATA,ID;[Ô]
Onde estão os parâmetros?
Dizem que é vivendo e aprendendo.
O que é isto.
Source = [Ô]SELECT * FROM INFORMATICA[txt-color=#e80000].sgqfneqfd [/txt-color]
O que é isto.
Source = [Ô]SELECT * FROM INFORMATICA[txt-color=#e80000].sgqfneqfd [/txt-color]
Estes são os eventos do campo do data.
Private Sub txtdata_LostFocus()
txtdata = Format(txtdata, [Ô]dd/mm/yyyy[Ô])
End Sub
Private Sub txtdata_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If txtdata.Text <> Empty Then
KeyCode = 0: SendKeys [Ô]{TAB}[Ô]
End If
End If
End Sub
Private Sub txtdata_KeyPress(KeyAscii As Integer)
CampoDATA txtdata, KeyAscii
End Sub
OMAR2011, [Ô]INFORMATICA[Ô] é o nome do meu banco, sgqfneqfd é o nome da minha tabela.
Private Sub txtdata_LostFocus()
txtdata = Format(txtdata, [Ô]dd/mm/yyyy[Ô])
End Sub
Private Sub txtdata_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If txtdata.Text <> Empty Then
KeyCode = 0: SendKeys [Ô]{TAB}[Ô]
End If
End If
End Sub
Private Sub txtdata_KeyPress(KeyAscii As Integer)
CampoDATA txtdata, KeyAscii
End Sub
OMAR2011, [Ô]INFORMATICA[Ô] é o nome do meu banco, sgqfneqfd é o nome da minha tabela.
Você é a segunda pessoa que abre [txt-color=#e80000]BancodeDados.tabela.[/txt-color]
Já tentei fazer e todas a vezes deu erro.
Será que realmente abri.
Alguém vai ler e postar novamente falando a respeito.
Já tentei fazer e todas a vezes deu erro.
Será que realmente abri.
Alguém vai ler e postar novamente falando a respeito.
Tópico encerrado , respostas não são mais permitidas