首页 > 解决方案 > 根据列表框访问数据库 vb.net 中的选择显示组框

问题描述

我有一个带有地址的访问数据库表和一个带有地址类型的表。当我添加一个新关系时,会有不同的分组框,其中包含应根据地址类型显示的附加信息。例如:患者只有基本地址信息。医生也需要一个参考号,所以如果我点击关系类型“医生”,地址组框应该会出现,而且带有医生参考文本框的组框也会出现。一个实例还应该得到实例组框+地址组框等。地址也可以是“多种类型”,所以如果地址是A:医生,B是实例,两个框都应该出现。我当前的代码如下所示:


Public Class NewRelationForm

        'groupboxen disablen on load
        Me.grpKiesUwRelatietype.Visible = True
        Me.grpBasisData.Visible = False
        Me.grpDataBI.Visible = False
        Me.grpFoto_Nota.Visible = False
        Me.grpHuisartsData.Visible = False
        Me.grpPartijData.Visible = False
        Me.grpVerwijzerdata.Visible = False

    End Sub

    'KNOPPEN en Functies!
    Private Sub NewRelationForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
               Me.Tbl_TypeTableAdapter1.Fill(Me.PatientenDatabaseDataSetX1.tbl_Type)
Me.Tbl_OnderzoeksTypesTableAdapter.Fill(Me.PatientenDatabaseDataSetX1.tbl_OnderzoeksTypes)
Me.Tbl_RelatiesTableAdapter.Fill(Me.PatientenDatabaseDataSetX.tbl_Relaties)
    End Sub
    Private Sub btnAddRelation_Click(sender As Object, e As EventArgs) Handles btnAddRelation.Click
        FormMakeRelationType.Show()
    End Sub

    Private Sub lboxRelatieTypes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lboxRelatieTypes.SelectedIndexChanged

    End Sub

    'Private Sub lboxRelatieTypes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lboxRelatieTypes.SelectedIndexChanged
    ''If ComboBox1.SelectedIndex = 1 Then
    ''    grpBasisData.Visible = True
    ''    grpFoto_Nota.Visible = True
    ''    grpFoto_Nota.Location = New Point(720, 120)
    ''End If
    'End Sub

End Class

我真的可以使用指针来执行此操作,我尝试过 if else,我尝试过 select case,但我找不到“正确的方法”。我是初学者 edit1:这是来自 winform 的图片:https ://imgur.com/a/80pKnjR ,这是访问数据库(出于隐私目的,数据库中的名称已更改 https://www.dropbox。 com/sh/4gudk8lwxtjahiq/AACz69ocFWIlU7hiTlQxbviLa?dl=0

标签: vb.netms-accesslistboxvisual-studio-2019

解决方案


我找到了它...基于stackoverflow中的一篇文章:如何在组合框中选择项目时显示隐藏的文本框

如果有人知道如何使这段代码“更容易处理”或“更紧凑”,我非常愿意接受想法。另外:我只能选择一个,其余的组框消失了,所以它需要一些微调,但我在那里 90%!

Private Sub lboxRelatieTypes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lboxRelatieTypes.SelectedIndexChanged
        If lboxRelatieTypes.Text.Trim.Contains("Patiënt") = True Then
            Me.grpBasisData.Visible = True
            Me.grpDataBI.Visible = False
            Me.grpFoto_Nota.Visible = True
            Me.grpHuisartsData.Visible = False
            Me.grpPartijData.Visible = False
            Me.grpVerwijzerdata.Visible = False
        ElseIf lboxRelatieTypes.Text.Trim.Contains("Verwijzer") = True Then
            Me.grpBasisData.Visible = True
            Me.grpDataBI.Visible = False
            Me.grpFoto_Nota.Visible = True
            Me.grpHuisartsData.Visible = False
            Me.grpPartijData.Visible = False
            Me.grpVerwijzerdata.Visible = True
        ElseIf lboxRelatieTypes.Text.Trim.Contains("Betalende Instantie") = True Then
            Me.grpBasisData.Visible = True
            Me.grpDataBI.Visible = True
            Me.grpFoto_Nota.Visible = True
            Me.grpHuisartsData.Visible = False
            Me.grpPartijData.Visible = True
            Me.grpVerwijzerdata.Visible = False
        ElseIf lboxRelatieTypes.Text.Trim.Contains("Huisarts") = True Then
            Me.grpBasisData.Visible = True
            Me.grpDataBI.Visible = False
            Me.grpFoto_Nota.Visible = True
            Me.grpHuisartsData.Visible = True
            Me.grpPartijData.Visible = False
            Me.grpVerwijzerdata.Visible = False
        ElseIf lboxRelatieTypes.Text.Trim.Contains("Huisarts" & "Betalende Instantie") = True Then
            Me.grpBasisData.Visible = True
            Me.grpDataBI.Visible = True
            Me.grpFoto_Nota.Visible = True
            Me.grpHuisartsData.Visible = True
            Me.grpPartijData.Visible = False
            Me.grpVerwijzerdata.Visible = False
        End If

        'Dim curitem As String = lboxRelatieTypes.SelectedItems.ToString()
        'Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\GoogleDrive\EINDWERK VBNET\PatientenDatabase.accdb")
        'con.Open()
        'Dim sql As String = String.Format("select * from tbl_Relaties where Rel_Type='{0}'", curitem)
        'Dim command As New OleDbCommand(sql, con)
        'Dim reader As OleDbDataReader = command.ExecuteReader()
        'If curitem.Contains "Huisarts" Then
        ' End If
        'con.Close()

推荐阅读