PROBLEMAS EM VARRER UM BANCO!!!
sql = [Ô]SELECT nome FROM clientes WHERE nome like %nilo*%[Ô] /// AQUI ELE PROCURAR O NOME NILO NO MEU BANCO E PEGA ELE PARA MIM BREVE SERà DATA
Conexao.AbrirSQL// AQUI TÃ BLZ
rssSQL.Open sql, cnnSQL, adOpenKeyset, adLockPessimistic // AQUI TÃ BLZ
Conexao.FecharSQL
sqlAccess = [Ô]Insert into teste(nome) Values([ô][Ô] & sql & [Ô][ô])[Ô] // ESTà LINHA Tà INSERINDO DE BOA
//O problema está em na variavel, sql que ñ tá me trazendo o valores e sim [Ô]select nome from clientes where nome like %nilo*%[Ô].
Conexao.AbrirConexao
Conexao.cnnAccess.Execute sqlAccess
Conexao.FecharConexao
Gostaria de saber como posso varer um banco em dedados!!
em php eu criaria uma variavel array e usava um foreach e jah elvis.
em vb nunca usei array.
aguardando ajuda
Set rssSQL = New ADODB.Recordset
sql = [Ô]SELECT nome FROM clientes WHERE nome like %nilo*%[Ô] /// AQUI ELE PROCURAR O NOME NILO NO MEU BANCO E PEGA ELE PARA MIM BREVE SERà DATA
Conexao.AbrirSQL// AQUI TÃ BLZ
rssSQL.Open sql, cnnSQL, adOpenKeyset, adLockPessimistic // AQUI TÃ BLZ
Conexao.FecharSQL
Set [txt-color=#0000f0]rssSQL2[/txt-color] = New ADODB.Recordset
sqlAccess = [Ô]Insert into teste(nome) Values([ô][Ô] & sql & [Ô][ô])[Ô] // ESTà LINHA Tà INSERINDO DE BOA
//O problema está em na variavel, sql que ñ tá me trazendo o valores e sim [Ô]select nome from clientes where nome like %nilo*%[Ô].
Conexao.AbrirConexao
[txt-color=#0000f0]rssSQL2[/txt-color].Open sqlaccess, cnnSQL, adOpenKeyset, adLockPessimistic
Conexao.FecharConexao
tanto pra consultar como para inserir vc deve usar a mesma lógica
o sql na sua concepção do código é só a instrução passada para consulta no banco. Na realidade quem vai agrupar os dados é o seu rssSql. Porém acontece o seguinte: ao utilizar o like ele vai retornar todos os dados que você informar na condição, ou seja, pode vir mais de um registro. Se você tem certeza que vem só um registro na consulta, atribui ela a uma variável string e coloca no values ou se quiser coloca direto mesmo rssSQL([Ô]nome[Ô]).value
Espero que te ajude.
eu não vou dizer que é a melhor forma, mas eu então faria o seguinte:
if rssSQL.recordcount > 0 then
rssSql.Movefirst
for i = 1 to rssSQL.recordcount
sqlAccess = [Ô]Insert into teste(nome) Values([ô][Ô] & sql & [Ô][ô])[Ô]
Conexao.AbrirConexao
Conexao.cnnAccess.Execute sqlAccess
Conexao.FecharConexao
rssSql.movenext
next i
Conexao.FecharSQL
end if
if rssSQL.recordcount > 0 then
rssSql.Movefirst
for i = 1 to rssSQL.recordcount
sqlAccess = [Ô]Insert into teste(nome) Values([ô][Ô] & rssSql([Ô]nome[Ô]).value & [Ô][ô])[Ô]
Conexao.AbrirConexao
Conexao.cnnAccess.Execute sqlAccess
Conexao.FecharConexao
rssSql.movenext
next i
Conexao.FecharSQL
end if
Olha se ajuda.
Citação:Modulo ou Classe Conexao...
Option Explicit
Public cnnAccess As ADODB.Connection
Public rssAccess As ADODB.Recordset
Public cnnSQL As ADODB.Connection
Public rssSQL As ADODB.Recordset
Public Sub AbrirConexao(Optional Arquivo As String)
Set cnnAccess = New ADODB.Connection
If Arquivo = [Ô][Ô] Then Arquivo = [Ô]nilo.mdb[Ô]
cnnAccess.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & _
App.Path & [Ô]\[Ô] & Arquivo & [Ô];Persist Security Info=False[Ô]
cnnAccess.Open
End Sub
Public Sub FecharConexao()
If (Not cnnAccess Is Nothing) Then
If cnnAccess.State = 1 Then
cnnAccess.Close
End If
Set cnnAccess = Nothing
End If
End Sub
Public Sub AbrirSQL(Optional usuarioSQL As String, Optional senhaSQL As String, Optional servidorSQL As String, Optional BancoDadosSQL As String)
[ô]Conexão SQL
usuarioSQL = [Ô]teste[Ô]
senhaSQL = [Ô]123abc@[Ô]
servidorSQL = [Ô]192.168.1.999[Ô]
BancoDadosSQL = [Ô]NILO[Ô]
Set cnnSQL = New ADODB.Connection
cnnSQL.ConnectionString = [Ô]Provider =SQLOLEDB.1;Persist Security Info=False;User ID=[Ô] & usuarioSQL & [Ô];Password=[Ô] & senhaSQL & [Ô];Initial Catalog=[Ô] & BancoDadosSQL & [Ô];Data Source=[Ô] & servidorSQL & [Ô][Ô]
cnnSQL.Open
If cnnSQL.State = adStateOpen Then
MsgBox [Ô]conexão efetuada com sucesso!!![Ô], vbInformation, [Ô] Conexão SQL[Ô]
Else
MsgBox [Ô]Tente novamente!!![Ô], vbInformation, [Ô] Conexão SQL[Ô]
End If
End Sub
Public Sub FecharSQL()
If (Not cnnSQL Is Nothing) Then
If cnnSQL.State = 1 Then
cnnSQL.Close
End If
Set cnnSQL = Nothing
End If
End Sub
vlw maninho ARCADYUM
Citação:frmSQL
Private Sub Command1_Click()
Dim sql As String
Dim sqlAccess As String
sql = [Ô]SELECT * FROM clientes where [Ô]
Set rssSQL = New Recordset
Conexao.AbrirSQL
rssSQL.Open sql, cnnSQL, adOpenKeyset, adLockPessimistic
rssSQL.MoveFirst
If rssSQL.RecordCount > 0 Then
rssSQL.MoveFirst
For i = 1 To rssSQL.RecordCount
sqlAccess = [Ô]INSERT INTO teste(nome,idade,data) VALUES ([ô][Ô] & rssSQL([Ô]nome[Ô]).Value & [Ô][ô],[ô][Ô] & rssSQL([Ô]idade[Ô]).Value & [Ô][ô],[ô][Ô] & rssSQL([Ô]data[Ô]).Value & [Ô][ô])[Ô]
Conexao.AbrirConexao
Conexao.cnnAccess.Execute sqlAccess
Conexao.FecharConexao
rssSQL.MoveNext
Next i
Conexao.FecharSQL
End If
End Sub
Obrigado á tds que colaboram ........
Agora meu outro problema quero criar um campo data no sql serve mais lah só tem datetime como seria uma consulta com sql.
Minha logica.
consult = txtdata.text
sql = select * from where data like %consult%
ai ele vai gravar só os registros selecionados na data...
Nunca testei data combinado com o like, até mesmo por que o like é para busca em textos (me corrijam se eu estiver falando besteira) e uma consulta com data, dá aquela impressão de ser uma consulta exata no tempo. Ou é uma data precisa ou um espaço de tempo.
Veja esses tópicos
http://imasters.com.br/artigo/229/sql_server/trabalhando_com_datas_no_sql_server/
http://www.devmedia.com.br/post-1946-Funcoes-de-data-no-SQL-Server.html
O único detalhe que percebi com os bancos de dados que trabalho é que todos só permitem consulta no formato americano ou seja mm/dd/yyyy e eu recomendo que você coloque ja na instrução. Exemplo:
sql = select * from where data = [Ô] & format(consult, [Ô]mm/dd/yyyy[Ô]) & [Ô]