CONSULTA SQL NO VB6
Companheiros, muito bom dia.
A miha tabela (AcervoBook) foi conectada ao Project através do controle ADODC. Numa simples consulta por meio de código SQL, deparo-me com erro de sintaxe na linha em negrito baixo. Sou um novato e fico algo confuso na forma de escrever os códigos. Fariam a gentileza de me mostrar a forma correta? Muito obrigado.
Private Sub cmdConsultar_Click()
Dim intCodigo As Integer
intCodigo = InputBox([Ô]Codigo[Ô], [Ô]Consulta[Ô])
(Desvincula a tabela)
adoData.RecordSource = [Ô] [Ô]
(Especifica a consulta tipo SQL)
adoData.CommandType = adCmdTable
(Faz a consulta SQL)
[txt-color=#e80000]adoData.RecordSource = [Ô]Select * From AcervoBook Where Codigo = intCodigo Order by Codigo[Ô][/txt-color]
adoData.Refresh (aqui é acusado erro de sintaxe no From)
End Sub
Mas se uso [Ô]adoData.Recordset.Update[Ô], a consulta não mostra o resultado.
Da forma em que se encontra a sintaxe, a digitação da consulta acima em vermelho está inoperante.
A miha tabela (AcervoBook) foi conectada ao Project através do controle ADODC. Numa simples consulta por meio de código SQL, deparo-me com erro de sintaxe na linha em negrito baixo. Sou um novato e fico algo confuso na forma de escrever os códigos. Fariam a gentileza de me mostrar a forma correta? Muito obrigado.
Private Sub cmdConsultar_Click()
Dim intCodigo As Integer
intCodigo = InputBox([Ô]Codigo[Ô], [Ô]Consulta[Ô])
(Desvincula a tabela)
adoData.RecordSource = [Ô] [Ô]
(Especifica a consulta tipo SQL)
adoData.CommandType = adCmdTable
(Faz a consulta SQL)
[txt-color=#e80000]adoData.RecordSource = [Ô]Select * From AcervoBook Where Codigo = intCodigo Order by Codigo[Ô][/txt-color]
adoData.Refresh (aqui é acusado erro de sintaxe no From)
End Sub
Mas se uso [Ô]adoData.Recordset.Update[Ô], a consulta não mostra o resultado.
Da forma em que se encontra a sintaxe, a digitação da consulta acima em vermelho está inoperante.
Corrigir dois erros.
Private Sub cmdConsultar_Click()
Dim intCodigo As Integer
intCodigo = InputBox([Ô]Codigo[Ô], [Ô]Consulta[Ô])
(Desvincula a tabela)
adoData.RecordSource = [Ô] [Ô]
(Especifica a consulta tipo SQL)
[ô][txt-color=#e80000]adoData.CommandType = adCmdTable[/txt-color] Está errado.
adoData.CommandType = adCmdText
(Faz a consulta SQL)
[ô]adoData.RecordSource = [Ô]Select * From AcervoBook Where Codigo = [txt-color=#e80000]intCodigo[/txt-color] Order by Codigo[Ô]
adoData.RecordSource = [Ô]Select * From AcervoBook Where Codigo = [Ô] & intCodigo & [Ô] Order by Codigo[Ô]
adoData.Refresh (aqui é acusado erro de sintaxe no From)
End Sub
Em Access.
Valeu
Private Sub cmdConsultar_Click()
Dim intCodigo As Integer
intCodigo = InputBox([Ô]Codigo[Ô], [Ô]Consulta[Ô])
(Desvincula a tabela)
adoData.RecordSource = [Ô] [Ô]
(Especifica a consulta tipo SQL)
[ô][txt-color=#e80000]adoData.CommandType = adCmdTable[/txt-color] Está errado.
adoData.CommandType = adCmdText
(Faz a consulta SQL)
[ô]adoData.RecordSource = [Ô]Select * From AcervoBook Where Codigo = [txt-color=#e80000]intCodigo[/txt-color] Order by Codigo[Ô]
adoData.RecordSource = [Ô]Select * From AcervoBook Where Codigo = [Ô] & intCodigo & [Ô] Order by Codigo[Ô]
adoData.Refresh (aqui é acusado erro de sintaxe no From)
End Sub
Em Access.
Valeu
OMAR2011, obrigado por sua correção da sintaxe. Após a tentativa de consulta, no entanto, o mecanismo de banco de dados do Microsoft Jet 4.0 informa não encontrar a tabela de entrada ou consulta [Ô]Acervo Book[Ô]. Um detalhe: qual é a necessidade de se desvincular a tabela para utilizar o SQL? Cordial abraço
Quando se usa,
adoData.CommandType = adCmdTable
vai preencher o combox com todos os registros da tabela e não pode usa Sql para a tabela.
adoData.CommandType = adCmdText
Usa o Sql como consulta para preencher de acordo seu gosto.
Acredito que eles queriam uma maior versatilidade para ADODC.
Quanto a não ter encontrado a tabela, devido não ter a string de conexão.
Coloque.
Adodc1.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\SeuBanco.mdb[Ô]
Valeu.
adoData.CommandType = adCmdTable
vai preencher o combox com todos os registros da tabela e não pode usa Sql para a tabela.
adoData.CommandType = adCmdText
Usa o Sql como consulta para preencher de acordo seu gosto.
Acredito que eles queriam uma maior versatilidade para ADODC.
Quanto a não ter encontrado a tabela, devido não ter a string de conexão.
Coloque.
Adodc1.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & App.Path & [Ô]\SeuBanco.mdb[Ô]
Valeu.
Uma ótima dica. Vou tentar, companheiro!
adodc1.ConnectionString = [Ô]Provider=Microsoft.Jet.4.0;OLEDB.Data Source=[ô][Ô] & C:\VB6 & [Ô][ô]\AcervoLC.mdb[Ô]
Caro amigo, o caminho é como está acima, mas me é informado erro de sintaxe.
(As aspas se encontram entre os dois apóstrofos).
Em tempo: eu não poderia manter o padrão do Recordset para localizar um registro e descartar o SQL?
Neste caso, como que dveria ser o código?
Caro amigo, o caminho é como está acima, mas me é informado erro de sintaxe.
(As aspas se encontram entre os dois apóstrofos).
Em tempo: eu não poderia manter o padrão do Recordset para localizar um registro e descartar o SQL?
Neste caso, como que dveria ser o código?
Adodc1.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VB6\Banco.mdb;Persist Security Info=False[Ô]
ou
Adodc1.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VB6\Banco.mdb[Ô]
ou
Adodc1.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VB6\Banco.mdb[Ô]
Muito obrigado, OMAR2011! Somente nessa troca de mensagens eu tive um belo aprendizado! Forte abraço
Tópico encerrado , respostas não são mais permitidas