1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Visual Studio - Subforms

Discussão em 'Programação' iniciada por diog0silva, 26 de Março de 2009. (Respostas: 14; Visualizações: 1022)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Há alguma maneira de usar subforms no Visual Studio? Como existe no Access...

    Cumprimentos
     
  2. AndreVSerafim

    AndreVSerafim Power Member

    Subforms? Da é para criares varias e liga las a teu belo prazer lol ou fazer um genero de Iframe ;)
     
  3. diog0silva

    diog0silva Power Member

    O que eu queria era mais ou menos isto:

    Imagina que numa base de dados tens duas tabelas: uma com dados sobre os clientes, outra com dados sobre as compras de cada cliente.

    O que eu queria era que, no form dos clientes, além dos dados dos clientes, aparecesse as compras que efectuou.

    No Access dá, usando a opção dos subforms.

    Agora tou a usar uma base de dados SQL Server, e queria saber se é possivel fazer o mesmo utilizando o VB.

    Cumprimentos.
     
  4. Jekkaman

    Jekkaman Power Member

    VB6 ou VB.Net?

    Coloca duas gridview.
     
  5. AndreVSerafim

    AndreVSerafim Power Member

    Isso é o paraiso :P VB e SQL é o melhor
    Faz assim ligas a BD ao VB e depois executas os comandos do SQL dentro do VB (para inserir e ver..se é so um genero de historico que queres) e em seguida é agrupar as coisas xD
    Do genero, tens 3forms, 1clientes, 1compras e outra historico.
    Nos clientes fazes num evento de botao ao clicares onde ele ira guardar os dados na BD..o codigo nao sei se queres mas depois e so pedires que eu explico aqui tambem se for preciso ;)
    Nas compras a mesmas coisa..
    E no historico poes ao fazer o load do form ele aceder automatico a BD pa ir buscar os dados..podes escolher o cliente numa listbox e depois ao escolher quem sera colocas os campos que queres nas textbox que queres e ai teras tudo junto ;)
     
  6. diog0silva

    diog0silva Power Member

    Jekkaman, vb.net.

    BorgasNight lol.. Vou tentar perceber o que me disseste e depois tentar fazer.

    Entretanto se alguém se lembrar de uma maneira mais simples, agradeço, é que não sou nenhum pro, nem de perto nem de longe lol

    Obrigado pela ajuda!
     
    Última edição: 27 de Março de 2009
  7. K0mA

    K0mA Power Member

    Imaginando que tens uma caixa de combinação para seleccionar o cliente: no evento da caixa fazes seleccionar os detalhes das compras e mostras numa grelha.
     
  8. diog0silva

    diog0silva Power Member

    Eu não sou grande coisa nas ligações às BD's. Aliás, esta é mesmo a primeira vez.

    Ninguém tem um exemplo parecido para que eu possa perceber mais ou menos como funciona?

    Obrigado a todos pela ajuda.
     
  9. AndreVSerafim

    AndreVSerafim Power Member

    Queres que te coloque aqui um codigo exemplo?
     
  10. diog0silva

    diog0silva Power Member

    isso era fantastico lol =)
     
  11. PNDmartins

    PNDmartins Power Member

    Já experimentas os MDIForms??

    Basicamente quando os usas, tens um form que é o PAI, e todos os outros forms abrem dentro dele. É capaz de servir para o que queres.
     
  12. diog0silva

    diog0silva Power Member

    Nunca ouvi falar disso lol Mas vou pesquisar e ver se dá.

    Obrigado pela ajuda.
     
  13. AndreVSerafim

    AndreVSerafim Power Member

    Aviso ja que nao testei nem tenho certezas mas é uma ideia que fica caso estejas interesado é so testar e mudar os detalhes a tua ideia ;) (este codigo foi desenvolvido aqui quando vi que aceitaste nao foi testado)

    Código:
    PrivateSub TAB_Dados_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles TAB_Dados.Click
    Dados()
    EndSub
    
    PrivateSub Dados()
    Dim Indices AsInteger = TabControlConteudos.SelectedIndex
    dbConn = OpenSqlConnection()
    If dbConn.State = ConnectionState.Closed Then
    	dbConn = OpenSqlConnection()
    	If dbConn.State = ConnectionState.Closed Then
    		MsgBox("Ligação à base de dados falhou", MsgBoxStyle.Critical)
    		ExitSub
    	EndIf
    EndIf
    Dim sqlQuery AsString = ""
    Dim sqlCommand As Data.SqlClient.SqlCommand
    Dim sqlDataReader As Data.SqlClient.SqlDataReader
    SelectCase Indices
    	Case 0
    		sqlQuery = "INSERT INTO TB_Clientes (NomeCliente, ContactoCliente) VALUES '" & TXT_NomeCliente & "', '" & TXT_ContactoCliente & "'"
    		sqlCommand = New Data.SqlClient.SqlCommand(sqlQuery, dbConn)
    		sqlDataReader = sqlCommand.ExecuteReader
    		sqlDataReader.Close()
    	Case 1
    		sqlQuery = "INSERT INTO TB_Compras (NomeProduto, PrecoProduto, NomeCliente) VALUES ('" & TXT_NomeProduto & "', '" & TXT_PrecoProduto & "', '" & TXT_NomeCliente & "')"
    		sqlCommand = New Data.SqlClient.SqlCommand(sqlQuery, dbConn)
    		sqlDataReader = sqlCommand.ExecuteReader
    		sqlDataReader.Close()
    	Case 2
    		If LST_Clientes.text = sqlDataReader("SELECT * FROM TB_Clientes WHERE '" & LST_Clientes.text & "'" Then
    			sqlQuery = "SELECT * FROM TB_Compras WHERE '" & LST_Clientes.text & "'"
    			sqlCommand = New Data.SqlClient.SqlCommand(sqlQuery, dbConn)
    			sqlDataReader = sqlCommand.ExecuteReader
    			sqlDataReader.Close()
    EndSelect
    sqlCommand = New Data.SqlClient.SqlCommand(sqlQuery, dbConn)
    sqlDataReader = sqlCommand.ExecuteReader
    If sqlDataReader.Read Then
    	SelectCase Indices
    		Case 2
    			TXT_NomeCliente=sqlDataReader("NomeCliente")
    			TXT_NomeProduto=sqlDataReader("NomeProduto")
    	EndSelect
    EndIf
    sqlDataReader.Close()
    dbConn.Close()
    EndSub
    A ideia e com uma Tab com 3abas conseguires isso ao clicares entre elas ;)
    Espero que ajude ou pelo menos que te de ideias
     
    Última edição pelo moderador: 28 de Março de 2009
  14. jpaulino

    jpaulino Power Member

  15. diog0silva

    diog0silva Power Member

    Obrigado jpaulino e obrigado BorgasNight pela paciência lol

    Vou olhar com mais atenção e tentar perceber e depois utilizá-lo na minha aplicação. Se tiver alguma dúvida ponho aqui.

    Cumprimentos.
     

Partilhar esta Página