我正在嘗試使用MS Access作爲數據庫來製作酒店管理系統。我能夠創建登錄,註冊,簽入,簽出表格,但我嘗試了一些新的東西給我。根據MS Access數據庫中的值更改按鈕的背景顏色
在我的MS Access數據庫中,我有一個表,名爲rooms
和它裏面是Roomnumber
(「數字」是由以下部分組成:201,202,203) Roomtype
(短文本包括以下內容:標準雙人間,家庭) 和Status
(短文本包含以下內容:可用,已佔用,保留)。
在我的表單中,我的按鈕名稱爲btn201
,btn202
和btn203
。
我希望我的按鈕背景顏色根據數據庫的值進行更改。
例子:
If the Status of Roomnumber "201" is "available" btn201 backcolor = green
If the Status of Roomnumber "201" is "Occupied" btn201 backcolor = red
這裏是我的代碼:
Imports System.Data.OleDb
Public Class Homepageform
Dim provider As String
Dim datafile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Private Sub Homepageform_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
'access location
datafile = "C:\Users\RM\Desktop\GPSinVS\GuestProSystem\GuestProSystem\guestprosystemdatabase.accdb"
connString = provider & datafile
myConnection.ConnectionString = connString
myConnection.Open()
Dim cmd As New OleDbCommand("Select [Roomnumber],[Status] FROM [rooms]", myConnection)
Dim dt As New DataTable
dt.Load(cmd.ExecuteReader)
For Each row As DataRow In dt.Rows
Select Case row("Roomnumber").ToString()
Case "201"
Select Case row("Status").ToString().ToLower()
Case "Available"
btn201.BackColor = Color.Green
Case "Occupied"
btn201.BackColor = Color.Red
Case Else
btn201.BackColor = Color.Black
cmd.ExecuteNonQuery()
End Select
End Select
Next
myConnection.Close()
End Sub
編輯。
我已經實現了基於@Bugs的答案的代碼。
有沒有錯誤,但btn201
背面顏色變成黑色,但在我的MS Access數據庫Roomnumber=201
和Status=Available
所以它應該是綠色的。
我試過刪除Case Else
並運行它,但沒有顏色變化。
'Case'available''not'Case「Available」'。我這樣做ToString()。ToLower()'。注意使用'.ToLower()'。我這樣做是爲了讓我們不必擔心帽子。 @sid – Bugs
另外我不確定你爲什麼要調用'cmd.ExecuteNonQuery()'這一點代碼不是必需的。 @sid – Bugs
哦,我的!所以我可以使用.ToLower,即使在我的數據庫MS訪問我的Status =「Available」的第一個字母是更高的情況。我以爲我只需要複製什麼在我的數據庫...反正它的工作!非常感謝! @Bugs – sid