ADOBD PARA SQL
Para ADODB faço da seguinte forma:
Como faço a mesma linha para SQL??
Dim rs As New ADODB.Recordset
Call abreconexao
Conex.CursorLocation = adUseClient
rs.Open [Ô]select * from TBPais[Ô], Conex, adOpenDynamic, adLockOptimistic
rs.MoveNext
if rs.eof then
rs.movelast
end if
txtregisto.Text = rs([Ô]registo[Ô])
txtnome.Text = rs([Ô]nome[Ô])
Como faço a mesma linha para SQL??
No exemplo que você postou é ADODB com SQL, pois você estra usando uma conexão ADODB e [Ô]select * from TBPais[Ô] é SQL.
Não entendi a tua dúvida !!!
Não entendi a tua dúvida !!!
Eu não estou a usar, esse foi um modelo que encontrei na net em uma duvida de um colega e ele diz no final do tópico que funcionou e postou esse codigo, o que preciso é o seguinte:
O que preciso fazer são os botões próximo registo, registo anterior e mover para o primeiro e mover para o ultimo.
já tenho em um classe geral uma conexão:
O que preciso fazer são os botões próximo registo, registo anterior e mover para o primeiro e mover para o ultimo.
já tenho em um classe geral uma conexão:
Public Sub abreconexao()
linha = Application.StartupPath & [Ô]\SIAF.mdf[Ô]
myConnectionString = [Ô]Data source=.\SQLEXPRESS;AttachDbFilename=[Ô] & linha & [Ô];Integrated Security=True;User Instance=True[Ô]
con = New SqlConnection(myConnectionString)
Con.Open()
End Sub
Estou colocando este código de acordo peguei e verifiquei que foi o melhor para movimentação de registros.Vale a pena usar para tal objetivo.
Basta adaptar para seu projeto.Qual dúvida,poste de novo.
TÃtulo da Dica: Conexão ADO um pouco mais profissional e usando Command
Postada em 22/4/2003 por ®ogerVB
--------------------------------------------------------------------------------
Neste exemplo de conexão estou usando o ADO 2.7, e 3 TextBox, com os nomes TxtCodigo, TxtNome e TxtObs,
e 4 CommandButton com os nome CmdPrimeiro, CmdAnterior, CmdProximo e CmdUltimo para a movimentação no banco!
Depois de adicionado esse objetos pode e a referencia pode copiar o seguinte código:
Public Conexao As ADODB.Connection
Private RsTabela As ADODB.Recordset
Private Cmd As ADODB.Command
_______________________________________________________________________
Private Sub Atualizar()
TxtCodigo.Text = RsTabela([Ô]codigo[Ô])
TxtNome.Text = RsTabela([Ô]nome[Ô])
TxtObs.Text = RsTabela([Ô]obs[Ô])
End Sub
_______________________________________________________________________
Private Sub CmdAnterior_Click()
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conexao
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]select * from tabela where codigo=(select max(codigo) from tabela where codigo < ?)[Ô]
Cmd.Parameters(0).Value = TxtCodigo.Text
Set RsTabela = Cmd.Execute
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
Set Cmd = Nothing
End Sub
_______________________________________________________________________
Private Sub CmdPrimeiro_Click()
Set RsTabela = New ADODB.Recordset
RsTabela.Open [Ô]Select * From Tabela where codigo=(select min(codigo) from tabela)[Ô], Conexao, adOpenDynamic
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
End Sub
_______________________________________________________________________
Private Sub CmdProximo_Click()
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conexao
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]select * from tabela where codigo=(select min(codigo) from tabela where codigo > ?)[Ô]
Cmd.Parameters(0).Value = TxtCodigo.Text
Set RsTabela = Cmd.Execute
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
Set Cmd = Nothing
End Sub
_______________________________________________________________________
Private Sub CmdUltimo_Click()
Set RsTabela = New ADODB.Recordset
RsTabela.ActiveConnection = Conexao
RsTabela.CursorLocation = adUseClient
RsTabela.CursorType = adOpenDynamic
RsTabela.Open [Ô]Select * From Tabela where codigo=(select max(codigo) from tabela)[Ô]
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
End Sub
_______________________________________________________________________
Private Sub Form_Load()
[ô]abre banco
Set Conexao = New ADODB.Connection
Conexao.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source= [Ô] & App.Path & [Ô]\banco.mdb[Ô]
Frame1.Enabled = False
CmdPrimeiro_Click
End Sub
Basta adaptar para seu projeto.Qual dúvida,poste de novo.
TÃtulo da Dica: Conexão ADO um pouco mais profissional e usando Command
Postada em 22/4/2003 por ®ogerVB
--------------------------------------------------------------------------------
Neste exemplo de conexão estou usando o ADO 2.7, e 3 TextBox, com os nomes TxtCodigo, TxtNome e TxtObs,
e 4 CommandButton com os nome CmdPrimeiro, CmdAnterior, CmdProximo e CmdUltimo para a movimentação no banco!
Depois de adicionado esse objetos pode e a referencia pode copiar o seguinte código:
Public Conexao As ADODB.Connection
Private RsTabela As ADODB.Recordset
Private Cmd As ADODB.Command
_______________________________________________________________________
Private Sub Atualizar()
TxtCodigo.Text = RsTabela([Ô]codigo[Ô])
TxtNome.Text = RsTabela([Ô]nome[Ô])
TxtObs.Text = RsTabela([Ô]obs[Ô])
End Sub
_______________________________________________________________________
Private Sub CmdAnterior_Click()
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conexao
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]select * from tabela where codigo=(select max(codigo) from tabela where codigo < ?)[Ô]
Cmd.Parameters(0).Value = TxtCodigo.Text
Set RsTabela = Cmd.Execute
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
Set Cmd = Nothing
End Sub
_______________________________________________________________________
Private Sub CmdPrimeiro_Click()
Set RsTabela = New ADODB.Recordset
RsTabela.Open [Ô]Select * From Tabela where codigo=(select min(codigo) from tabela)[Ô], Conexao, adOpenDynamic
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
End Sub
_______________________________________________________________________
Private Sub CmdProximo_Click()
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conexao
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]select * from tabela where codigo=(select min(codigo) from tabela where codigo > ?)[Ô]
Cmd.Parameters(0).Value = TxtCodigo.Text
Set RsTabela = Cmd.Execute
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
Set Cmd = Nothing
End Sub
_______________________________________________________________________
Private Sub CmdUltimo_Click()
Set RsTabela = New ADODB.Recordset
RsTabela.ActiveConnection = Conexao
RsTabela.CursorLocation = adUseClient
RsTabela.CursorType = adOpenDynamic
RsTabela.Open [Ô]Select * From Tabela where codigo=(select max(codigo) from tabela)[Ô]
If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
End Sub
_______________________________________________________________________
Private Sub Form_Load()
[ô]abre banco
Set Conexao = New ADODB.Connection
Conexao.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source= [Ô] & App.Path & [Ô]\banco.mdb[Ô]
Frame1.Enabled = False
CmdPrimeiro_Click
End Sub
Ok, mas não sei alterar para SQL, algumas coisas sei mas outras não.
exemplo:
Mas não sei se esta certo.
E essa linha abaixo também não sei como fica em SQL
exemplo:
Public Conexao As ADODB.Connection acho que esse fica assim: Public Conexao As SqlConnection
Private RsTabela As ADODB.Recordset esse eu não sei se esta certo: Private RsTabela As Dataset
Private Cmd As ADODB.Command acho que esse fica assim: Private Cmd As SqlCommand
Mas não sei se esta certo.
E essa linha abaixo também não sei como fica em SQL
RsTabela.CursorLocation = adUseClient
RsTabela.CursorType = adOpenDynamic
O Titulo do Tópico não condiz com a duvida, sua duvida é [txt-color=#0000f0][Ô]Como criar botões de navegação?[Ô][/txt-color]
bom esta é uma duvida muito frequente ultimamente no fórum e estou pensando em até criar um arquivo a respeito.
Mas vamos lá:
Primeiro gostaria de expressar a minha forma de pensar sobre o assunto, pois eu particularmente não gosto deste método, veja bem eu já o usei quando comecei a programar em DAO, porém pense bem, se você for usar o método de navegação em poucos registro não terá problema algum em encontrar o registro que procura, mas e se o seu banco de dados contiver 1.000.000 (Hum Milhão) de registros, você vai ficar clicando em próximo até o [Ô]dedo cair[Ô]. meio primitivo este método não acha?
Atualmente uso um grid e um textbox e preencho o grid conforme vou digitando exemplo, se eu digitar A no textbox apenas os registros que começam com A serão listados, se eu colocar o R em seguida serão listadas todas as que começam com AR, e desta lista escolho o que procuro, muito mais pratico, pelo menos é o que eu acho.
porém você deseja navegar nos registro então siga estes procedimentos
No general do form declare os recordsets
no load do form abra a conexão
coloque agora nos botões de navegação
espero que eu tenha sido claro o suficiente, e tenha ajudado
bom esta é uma duvida muito frequente ultimamente no fórum e estou pensando em até criar um arquivo a respeito.
Mas vamos lá:
Primeiro gostaria de expressar a minha forma de pensar sobre o assunto, pois eu particularmente não gosto deste método, veja bem eu já o usei quando comecei a programar em DAO, porém pense bem, se você for usar o método de navegação em poucos registro não terá problema algum em encontrar o registro que procura, mas e se o seu banco de dados contiver 1.000.000 (Hum Milhão) de registros, você vai ficar clicando em próximo até o [Ô]dedo cair[Ô]. meio primitivo este método não acha?
Atualmente uso um grid e um textbox e preencho o grid conforme vou digitando exemplo, se eu digitar A no textbox apenas os registros que começam com A serão listados, se eu colocar o R em seguida serão listadas todas as que começam com AR, e desta lista escolho o que procuro, muito mais pratico, pelo menos é o que eu acho.
porém você deseja navegar nos registro então siga estes procedimentos
No general do form declare os recordsets
Dim RST As ADODB.Recordset
Dim CNN As ADODB.Connection
Dim strCnxn As String
no load do form abra a conexão
Set CNN= New ADODB.Connection
strCnxn = [Ô]Coloque sua string de conexão aqui[Ô]
CNN.Open strCnxn
[txt-color=#007100][ô] Defina o recorset[/txt-color]
Set RST = New ADODB.Recordset
[txt-color=#007100] [ô] Defina o cursor location como cliente para ativar a propriedade AbsolutePosition[/txt-color]
RST.CursorLocation = adUseClient
[txt-color=#007100][ô] Agora iremos abrir a tabela desejada[/txt-color]
RST.Open [Ô]sua_tabela[Ô], CNN, adOpenStatic, adLockReadOnly, adCmdTable
[txt-color=#007100][ô] pronto estamos prontos para navegar entre os registros[/txt-color]
coloque agora nos botões de navegação
[txt-color=#007100][ô] Primeiro[/txt-color]
RST.MoveFirst
[txt-color=#007100][ô]Ultimo[/txt-color]
RST.MoveLast
[txt-color=#007100][ô]Proximo[/txt-color]
RST.MoveNext
If RST.EOF Then
MsgBox [Ô]Fim dos Registros![Ô]
RST.MoveLast
End If
[txt-color=#007100][ô]Anterior[/txt-color]
RST.MovePrevious
If RST.BOF Then
MsgBox [Ô]Inicio dos registros![Ô]
RST.MoveFirst
End If
espero que eu tenha sido claro o suficiente, e tenha ajudado
Mas eu não posso fazer em um módulo a declaração dos recordsets e uma função para abrir a conexão?, assim em toda a parte do programa que eu precisar basta chamar.
eu dei uma explicação superficial do assunto, mas claro que você pode criar um módulo de conexão, desde que da maneira como eu expliquei.
Qual vb esta usando?
visual studio 2010
e sacanagem comigo ultimamente todo mundo de vb.net quer postar em vb6, desisto......volto ano que vem se o mundo não acabar.
feliz natal a todos e um prospero ano de 2013.
feliz natal a todos e um prospero ano de 2013.
Tópico encerrado , respostas não são mais permitidas