客戶那邊的程式的資料庫中有一個表,原只有一個欄位:姓名,現想增加一個欄位:編號,需要給用戶升級一下程式,增加這個欄位的編碼程式已完成了,現在想問一下,增加完這個欄位后,如何給這個編號分別賦不同的值 。
謝謝大家 。
uj5u.com熱心網友回復:
分兩步,第一步:創建欄位,第二步:寫入資料uj5u.com熱心網友回復:
do while not d.eofupdate .......
d.movenext
loop
uj5u.com熱心網友回復:
說明你的代碼在資料庫操作方面還存在不少硬編碼. 以至于連資料庫和程式都要更改.舉個例子:
recordset.field("name")=text1.text 或者反過來賦值, 這種都是糟糕透頂的代碼.
將來資料庫升級都需要改代碼.
好的做法是不要用硬性的代碼來將欄位和控制元件對應.
假設你使用的界面是label+text的形式, label用來顯示欄位含意,text用來顯示欄位內容.
在界面上默認有一個label1(0)和text1(0)的情況下:
...
FieldCount = RecordSet.Fields.Count
Hei = Label1(0).Height + Text1(0).Height + 5
Lft = Label1(0).Left
...
If FieldCount > 1 Then
For I = 1 To FieldCount - 1
Load Label1(I)
Load Text1(I)
With Label1(I)
.Move Lft, Hei * I + 5
.Visible = True
End With
With Text1(I)
.Move Lft, Hei * I + Label1(0).Height + 5
.Visible = True
End With
Next
End If
For I = 0 To FieldCount - 1
Label1(i).Caption = FieldMemo(I)
Text1(I).MaxLength = RecordSet.Fields(I).DefinedSize
Next
就這樣, 無論你有多少個欄位, 統統一列顯示出來. 并且自動設定好欄位長度, 避免輸入過多.
你會注意到我最后用到了一個FieldMemo(I)陣列, 這里面存放了從資料庫獲得的每個欄位的"備注"資訊.
一般來說不建議用中文做欄位名, 而把中文名字寫在備注里面.
access資料庫可以用adox物件來獲得欄位備注, sql server的話可以參考>>這個<<
其實這只是包含了最簡單的資料庫自適應特征的一部分而已. 還有資料記錄的添加,查詢等等.
都可以做到代碼相關性非常非常低. 即使實在無法避免的情況下也盡量使用外部組態檔的方式, 而不是直接寫成代碼.
好處就是, 這樣的代碼, 如果只是一般的欄位修改就不需要修改程式了. 直接用資料庫工具改完資料庫就可以立即生效啦.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/145009.html
標籤:VB基礎類
上一篇:請問2010有沒有類似“2007OfficeControlIDsExcel2007”的控制元件詳解?
下一篇:如何實作Win7桌面陰影字體
