Ir para o conteúdo
paulordl

[Resolvido] Projeto de Curos com MySql

Mensagens Recomendadas

paulordl

Boas,

Pessoal tenho um projeto de curso, e preciso imenso de ajuda.

Tenho a data limite a chegar e ainda me falta uma parte do programa que basicamente é o que o complementa.

Vou explicar um pouco para se perceber, é um programa em vb 2010 usa base de dados access e tem sql para fazer a ligação, parte do codigo foi através deste link http://wiki.portugal-a-programar.pt/dev_net:vb.net:access, mas há uma parte que não consigo fazer, eu tenho digamos uma tabela de Equipa e tem os seguintes campos (CodEqui, Descricao, CodEsp) o CodEsp pertence a uma tabela Especialidades que tem como campod (CodEsp, Especialidade) onde uma especialidade pode ter varias equipas mas uma equipa só pode ter uma especialidade.

Quando quero adicionar uma equipa peço, o (CodEqui, Descricao, CodEsp),mas quando peço o CodEsp faço um select a tabela Especialidades e mostro numa combobox a especialidade mas para guardar quero guardar o CodEsp, a questão é como eu faço, quando escolho numa combobox a especialidade X onde o seu CodEsp é 1, e quando guardo na base de dados ele guarda 1 (pois a tabela tem CodEsp e não Especialidade como campo).

Espero que me tenha feito entender.

Muito Obrigado,

Aguardo uma resposta, pois tenho alguma urgência.

If valida() Then
	 Try
		 If novo Then
			 If con_bd.State = ConnectionState.Open Then con_bd.Close()
			 con_bd.Open()
			 ds.Reset()
			 Dim query As String = "insert into Equipa(CodEqui, Descricao, CodEsp) " _
					 & " values " _
					 & "('" & txtcodequi.Text & "','" & txtnome.Text & "','" & cbespecialidade.Text & "')"
Dim adptr2 As New OleDbDataAdapter(query, con_bd)
			 adptr2.Fill(ds)
			 MsgBox("Equipa criada com êxito", vbInformation, "Informação")
		 Else
			 If MsgBox("A equipa já se encontra na base de dados, quer edita-la?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Aviso Alteração!") = MsgBoxResult.Yes Then
				 If con_bd.State = ConnectionState.Open Then con_bd.Close()
				 con_bd.Open()
				 ds.Reset()
				 Dim query As String = "update Equipa set " _
									 & " Descricao = '" & txtnome.Text & "'" _
									 & " CodEsp = '" & cbespecialidade.Text & "'" _
										 & " where CodEqui = " & txtcodequi.Text
				 Dim adptr2 As New OleDbDataAdapter(query, con_bd)
				 adptr2.Fill(ds)
				 MsgBox("A equipa foi editada com êxito", vbInformation, "Informação")
				 btocriar.Visible = True
				 btoeditar.Visible = False
				 btoapagar.Visible = False
				 CriarToolStripMenuItem.Visible = True
				 EditarToolStripMenuItem.Visible = False
				 EliminarToolStripMenuItem.Visible = False
			 Else
				 MsgBox("A edição foi cancelada", vbInformation, "Informação")
			 End If
		 End If
		 cbequipa.Items.Clear()
		 Call carregaDados()
		 con_bd.Close()
		 Call ApagarCampos()
	 Catch ex As Exception
		 MsgBox(ex.Message)
		 con_bd.Close()
	 End Try
 Else
	 MsgBox("Preencha os dados corretamente", vbInformation, "Aviso")
 End If
 novo = False

Captura_de_Ecr_12.png

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Podes simplesmente escolher o valor da coluna zero da combobox.

Me.ComboBoxEspecialidade.Column(1)

Uma vez que a combobox, creio que esteja a ser preenchida pelos campos da tabela especialidade (com apenas o segundo campo visível), podes usar para a query o valor do primeiro campo.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Retsu9

ou entao podes fazer o seguinte, antes de inserires uma equipa, fazes um select à tabela especialidades com a especialidade da combobox, do genero:

Select Codesp from especialidade where Especialidade = cbespecialidade.selecteditem

atribuis o resultado a uma variavel:

codesp=Resultado da pesquisa

depois é so inserires como tens mas usas a variavel codesp em vez do valor da combobox

Editado por Retsu9

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
paulordl

ou entao podes fazer o seguinte, antes de inserires uma equipa, fazes um select à tabela especialidades com a especialidade da combobox, do genero:

Select Codesp from especialidade where Especialidade = cbespecialidade.selecteditem

atribuis o resultado a uma variavel:

codesp=Resultado da pesquisa

depois é so inserires como tens mas usas a variavel codesp em vez do valor da combobox

Meti assim mas não consegui :S

 If valida() Then
	 Try
		 If novo Then
			 If con_bd.State = ConnectionState.Open Then con_bd.Close()
			 con_bd.Open()
			 ds.Reset()
			 Dim query1 As String = "select CodEsp From Especialidades where Especialidade = " & cbespecialidade.SelectedItem
			 Dim save As String
			 save = "CodEsp"
			 Dim query As String = "insert into Medicos(CodMed, NomeMed, CodEsp, CodEqui) " _
					 & " values " _
					 & "('" & txtcodmed.Text & "','" & txtnome.Text & "','" & save & "','" & cbequipa.SelectedItem & "')"
			 Dim adptr2 As New OleDbDataAdapter(query, con_bd)
			 adptr2.Fill(ds)
			 MsgBox("Médico criada com êxito", vbInformation, "Informação")

Editado por apocsantos
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Retsu9

tens de usar datareaders e tal para ler os dados...pensei que sabias fazer um select eu nao coloquei codigo era a ideia

pelo que percebi usas datasets e tableadapters... aquilo que arrastas para o formulario e cria te as tabelas e isso tudo logo certo?

se for o caso nao te vou poder ajudar...embora isso seja basico eu nao gosto de trabalhar com isso faço tudo "manualmente" desde criar a datagrid e preenche la com a base de dados e remover\adicionar\editar com funçoes sql... nem sei trabalhar dessa forma

eu trabalho mais ou menos desta forma : http://wiki.portugal-a-programar.pt/dev_net:vb.net:access

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.