EXIBIR SOMA DE DADOS DO ACCESS NUM TXTBOX
Olá bom dia,
Sou novo neste fórum e estou com uma dúvida básica, se alguém puder me ajudar ficarei grato
é o seguinte, fiz minha conexão com o Banco de dados no access e estou precisando de um somatório destes campos, mas não estou conseguindo... Minhas pesquisas resultam em maneiras diversar de fazer isso, pórem diferem da minha conexão e não consigo converter...
Eu fiz um esquema, uma lógica básica, não dá certo pois não sei qual propiedade utilizar...
Vou postar meu módulo de conexão.
-----------------------------------------------
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data
Module mdlConexao
Private aConexao As New ADODB.Connection
Const BancoDeDados = [Ô]Banco3[Ô]
Const acess_db = [Ô]bancodedados[Ô]
Const acess_usr = [Ô]usuario[Ô]
Const acess_pwd = [Ô]senha[Ô]
Const acess_server = [Ô](local)[Ô]
Public Enum tpServidor
Access = 0
SqlServer = 1
End Enum
Public Function OpenRecordset(ByVal Sql As String, Optional ByVal servidor As tpServidor = tpServidor.Access)
Dim aResultado As New ADODB.Recordset
Dim acess_db2 As String
acess_db2 = My.Computer.FileSystem.CurrentDirectory
acess_db2 &= IIf(Right(acess_db2, 1) = [Ô]\[Ô], [Ô][Ô], [Ô]\[Ô])
acess_db2 &= BancoDeDados & [Ô].mdb[Ô]
[ô]MsgBox(acess_db2)
If aConexao.State = 1 Then aConexao.Close()
If servidor = tpServidor.SqlServer Then
aConexao.ConnectionString = [Ô]driver={sql server};[Ô] & _
[Ô]server=[Ô] + acess_server + [Ô];[Ô] & _
[Ô]Database=[Ô] + acess_db + [Ô];[Ô] & _
[Ô]PWD=[Ô] + acess_pwd + [Ô];[Ô] & _
[Ô]UID=[Ô] + acess_usr + [Ô];[Ô]
Else
aConexao.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & acess_db2 & [Ô];Persist Security Info=False[Ô]
End If
Try
aConexao.Open()
Catch ex As Exception
aResultado = Nothing
MsgBox([Ô]Banco de Dados não encontrado![Ô])
GoTo fim
End Try
aResultado.CursorLocation = ADODB.CursorLocationEnum.adUseClient
aResultado.Open(Sql, aConexao, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
fim:
OpenRecordset = aResultado
aResultado = Nothing
End Function
End Module
Eu salvo os dados para fazer esse teste
Public Class Form1
Dim tbTeste2 As ADODB.Recordset
Dim sql As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
sql = [Ô]insert into tbTeste2 (Nome, Idade) values ([ô][Ô] & txtNome.Text & [Ô][ô], [ô][Ô] & txtIdade.Text & [Ô][ô])[Ô]
tbTeste2 = OpenRecordset(sql)
sql = [Ô]select * from tbTeste2 order by Codigo desc[Ô]
tbTeste2 = OpenRecordset(sql)
tbTeste2.MoveFirst()
txtCodigo.text = tbTeste2.Fields([Ô]Codigo[Ô]).Value.ToString
End Sub
e agora preciso da soma das Idades
Private Sub btnAtualizar_Click(sender As Object, e As EventArgs) Handles btnAtualizar.Click
sql = ([Ô]select SUM(Idade) from tbTeste2[Ô])
tbTeste2 = OpenRecordset(sql)
txtSoma.Text = tbTeste2 (...) [ô] Daqui pra frente não sei o que fazer
Dnd sub
Sou novo neste fórum e estou com uma dúvida básica, se alguém puder me ajudar ficarei grato
é o seguinte, fiz minha conexão com o Banco de dados no access e estou precisando de um somatório destes campos, mas não estou conseguindo... Minhas pesquisas resultam em maneiras diversar de fazer isso, pórem diferem da minha conexão e não consigo converter...
Eu fiz um esquema, uma lógica básica, não dá certo pois não sei qual propiedade utilizar...
Vou postar meu módulo de conexão.
-----------------------------------------------
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data
Module mdlConexao
Private aConexao As New ADODB.Connection
Const BancoDeDados = [Ô]Banco3[Ô]
Const acess_db = [Ô]bancodedados[Ô]
Const acess_usr = [Ô]usuario[Ô]
Const acess_pwd = [Ô]senha[Ô]
Const acess_server = [Ô](local)[Ô]
Public Enum tpServidor
Access = 0
SqlServer = 1
End Enum
Public Function OpenRecordset(ByVal Sql As String, Optional ByVal servidor As tpServidor = tpServidor.Access)
Dim aResultado As New ADODB.Recordset
Dim acess_db2 As String
acess_db2 = My.Computer.FileSystem.CurrentDirectory
acess_db2 &= IIf(Right(acess_db2, 1) = [Ô]\[Ô], [Ô][Ô], [Ô]\[Ô])
acess_db2 &= BancoDeDados & [Ô].mdb[Ô]
[ô]MsgBox(acess_db2)
If aConexao.State = 1 Then aConexao.Close()
If servidor = tpServidor.SqlServer Then
aConexao.ConnectionString = [Ô]driver={sql server};[Ô] & _
[Ô]server=[Ô] + acess_server + [Ô];[Ô] & _
[Ô]Database=[Ô] + acess_db + [Ô];[Ô] & _
[Ô]PWD=[Ô] + acess_pwd + [Ô];[Ô] & _
[Ô]UID=[Ô] + acess_usr + [Ô];[Ô]
Else
aConexao.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & acess_db2 & [Ô];Persist Security Info=False[Ô]
End If
Try
aConexao.Open()
Catch ex As Exception
aResultado = Nothing
MsgBox([Ô]Banco de Dados não encontrado![Ô])
GoTo fim
End Try
aResultado.CursorLocation = ADODB.CursorLocationEnum.adUseClient
aResultado.Open(Sql, aConexao, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
fim:
OpenRecordset = aResultado
aResultado = Nothing
End Function
End Module
Eu salvo os dados para fazer esse teste
Public Class Form1
Dim tbTeste2 As ADODB.Recordset
Dim sql As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
sql = [Ô]insert into tbTeste2 (Nome, Idade) values ([ô][Ô] & txtNome.Text & [Ô][ô], [ô][Ô] & txtIdade.Text & [Ô][ô])[Ô]
tbTeste2 = OpenRecordset(sql)
sql = [Ô]select * from tbTeste2 order by Codigo desc[Ô]
tbTeste2 = OpenRecordset(sql)
tbTeste2.MoveFirst()
txtCodigo.text = tbTeste2.Fields([Ô]Codigo[Ô]).Value.ToString
End Sub
e agora preciso da soma das Idades
Private Sub btnAtualizar_Click(sender As Object, e As EventArgs) Handles btnAtualizar.Click
sql = ([Ô]select SUM(Idade) from tbTeste2[Ô])
tbTeste2 = OpenRecordset(sql)
txtSoma.Text = tbTeste2 (...) [ô] Daqui pra frente não sei o que fazer
Dnd sub
sql = ([Ô]select SUM(Idade) as SomaIdade from tbTeste2[Ô])
tbTeste2 = OpenRecordset(sql)
txtSoma.text = tbTeste2.Fields([Ô]SomaIdade[Ô]).Value.ToString
tbTeste2 = OpenRecordset(sql)
txtSoma.text = tbTeste2.Fields([Ô]SomaIdade[Ô]).Value.ToString
Obrigado NILSONTRES,
Deu certinho.
Deu certinho.
Tópico encerrado , respostas não são mais permitidas