Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ivanelson

Registros ñ são salvos

Recommended Posts

Oi galera... estou tendo problemas em salvar os dados no VB 2008 usando o BD Access 2007

Eu consigo ver os registro q eu coloquei para teste usando o Access, mas o q eu adiciono usando o codigo ele so mostra enquanto ele esta rodando, depois q eu fecho, quando volta ñ tem os registros adicionados.

O codigo de p/ adicionar esta assim:

 

CODE
Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click

 

txtCod.Text = ""

txtNome.Text = ""

cmbSexo.Text = ""

 

txtCod.Focus()

 

C_Manager.AddNew()

 

End Sub

 

 

Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click

 

'Salva os novos dados

C_Manager.EndCurrentEdit()

C_Manager.Refresh()

 

'Ordena a tabela por uma determinada tabela

Tabela.DefaultView.Sort = "Nome"

 

End Sub

 

 

Oq esta errado?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imports System.Data
Imports System.Data.OleDb

Module Teste

	'Faz a conexão com o bando de dados
	Public Conexão As OleDbConnection
	Public strCon As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Visual Studio 2008\Projects\TesteAccess_Linhas\TesteAccess_Linhas\Teste.accdb"

	'Usado para comando SQL para Abrir e selecionar tabelas
	Public Comandos As OleDbCommand
	Public strCom As String

	'Faz o acesso do Banco de dados, via uma conexão previa
	Public Adapitador As New OleDbDataAdapter

	'DataAdapter atravez do comando .Fill preenche a tabela
	Public Tabela As New DataTable

	'Comando para apresentação dos dados
	Public C_Manager As CurrencyManager

	'Cotandor para a posição mostrada no form
	Public Pos As Integer

End Module

Imports System.Data
Imports System.Data.OleDb

Public Class Form1

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

		Conexão = New OleDbConnection(strCon)
		Conexão.Open()

		'------------------------Teste-------------------------
		strCom = "SELECT DISTINCT Sexo from Teste ORDER BY Sexo"
		Comandos = New OleDbCommand(strCom, Conexão)

		Adapitador.SelectCommand = Comandos
		Adapitador.Fill(Tabela)

		C_Manager = DirectCast(Me.BindingContext(Tabela), CurrencyManager)
		C_Manager.Position = 0

		Dim cont As Integer
		cmbSexo.DataBindings.Add("Text", Tabela, "Sexo")
		For cont = 0 To C_Manager.Count - 1
			cmbSexo.Items.Add(cmbSexo.Text)
			C_Manager.Position += 1
		Next

		Tabela.Clear()

		strCom = "SELECT * from Teste ORDER BY Nome"
		Comandos = New OleDbCommand(strCom, Conexão)

		Adapitador.SelectCommand = Comandos
		Adapitador.Fill(Tabela)

		C_Manager = DirectCast(Me.BindingContext(Tabela), CurrencyManager)
		C_Manager.Position = 0
		'------------------------------------------------------

		'Vincula os dados da tabela com o icone
		txtCod.DataBindings.Add("Text", Tabela, "Cod")
		txtNome.DataBindings.Add("Text", Tabela, "Nome")
		'cmbSexo.DataBindings.Add("Text", Tabela, "Sexo")

		'Barra de Posições
		Pos = 1
		If C_Manager.Count > 0 Then
			lblPos.Text = Pos & "/" & C_Manager.Count
		Else
			lblPos.Text = "Sem Registristros"
		End If

	End Sub

	Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPri.Click

		C_Manager.Position = 0
		Pos = 1
		lblPos.Text = Pos & "/" & C_Manager.Count

	End Sub

	Private Sub btnAnt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnt.Click

		C_Manager.Position -= 1
		If C_Manager.Position = 0 Then
			Pos = 1
		Else
			Pos -= 1
		End If
		lblPos.Text = Pos & "/" & C_Manager.Count

	End Sub

	Private Sub btnPro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPro.Click

		C_Manager.Position += 1
		If C_Manager.Position = C_Manager.Count - 1 Then
			Pos = C_Manager.Count
		Else
			Pos += 1
		End If
		lblPos.Text = Pos & "/" & C_Manager.Count

	End Sub

	Private Sub btnUlt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUlt.Click

		C_Manager.Position = C_Manager.Count - 1
		Pos = C_Manager.Count
		lblPos.Text = Pos & "/" & C_Manager.Count

	End Sub

	Private Sub Estado(ByVal Est As Integer)

		Select Case Est
			Case 1
				'Edição
			Case 2
				'Visualisão
		End Select
	End Sub

	Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click

		txtCod.Text = ""
		txtNome.Text = ""
		cmbSexo.Text = ""

		txtCod.Focus()

		C_Manager.AddNew()

	End Sub

	Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click

		'Salva os novos dados
		C_Manager.EndCurrentEdit()
		C_Manager.Refresh()

		'Ordena a tabela por uma determinada tabela
		Tabela.DefaultView.Sort = "Nome"

		'------------------Para se retornar no Item Salvo-----------------
		'obtem o id da linha Salva
		'linhaSalva = Tabela.DefaultView.Find("pode ser o codigo do cliente")

		'atribui a posição da linha em edição ao CurrencyManager
		'C_Manager.Position = linhaSalva

	End Sub

	Private Sub btnSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click

		Conexão.Close()
		Me.Close()

	End Sub
End Class

É este o meu código... é bem simples mas é apenas um teste... É para aplicações do windows... um forma q manipula dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

no btnNovo eu dou o comando AddNew() então teoricamente ou estou criando um espaço para um novo registro e abrindo a edição, então no btnSalvar eu uso o comando EndCurrentEdit() para encerar a edição e pelo oq eu vi já deveria estar salvo... mas ele ñ salva na tabela os meus resgistros novos... ele so mostra enquanto esta em execução...

Eu andei pesquisando mais um pouco e acho q eu descobri o pq disso, oq acontece é q o CurrencyManager seria uma tabela "virtual", então enquanto ele esta em execução beleza, mas quando eu encerro o programa ela se perde. Teria q fazer algo para salvar os dados na tabela real no meu banco de dados... mas ñ sei como fazer isso.

 

Obrigado, abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.