CONSULTA SQL NO VB6

LCGALVAO 31/08/2013 17:44:07
#428349
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.

OMAR2011 31/08/2013 19:24:01
#428351
Resposta escolhida
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
LCGALVAO 01/09/2013 08:17:55
#428358
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
OMAR2011 01/09/2013 09:47:00
#428359
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.
LCGALVAO 01/09/2013 13:59:00
#428363
Uma ótima dica. Vou tentar, companheiro!
LCGALVAO 01/09/2013 15:15:42
#428364
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?

OMAR2011 01/09/2013 17:02:42
#428366
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[Ô]
LCGALVAO 01/09/2013 18:24:40
#428370
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