国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Access > 正文

access在結(jié)合或綁定的組合框中添加新值

2024-09-07 19:05:09
字體:
供稿:網(wǎng)友
 當(dāng)主表(“一”表)中的主鍵字段與相關(guān)表(“多”表)中的外部鍵字段建立了關(guān)系后,在基于相關(guān)表(“多”表)而建的窗體中,外部鍵字段的控件可以設(shè)為組合框,通過鍵盤或鼠標(biāo),輸入或選擇組合框中已存的值,也就是引用“一”表所有的數(shù)據(jù)。 此時,組合框的“行來源類型(RowSourceType)”屬性為“表/查詢”;“行來源(RowSource)”屬性為一查詢或SQL語句,同時必須設(shè)置“結(jié)合列(或綁定列)(BoundColumn)”屬性;而“限于列表”屬性必須設(shè)為“是”,這是為了確保在相關(guān)表(“多”表)中的外部鍵字段必須與主表(“一”表)中的主鍵字段有一一對應(yīng)的關(guān)系。從中也可以看出,輸入數(shù)據(jù)必須先輸入主表(“一”表)的數(shù)據(jù),然后才能在相關(guān)表(“多”表)中,引用主表(“一”表)的數(shù)據(jù)。
  當(dāng)組合框?yàn)榻Y(jié)合(或綁定)時,上述一些屬性必須如上所述。假如在組合框中輸入新值,將會觸發(fā)“不在列表中(NotInList)”事件。在該事件中寫上適當(dāng)?shù)拇a就能將新值添加到組合框所結(jié)合(或綁定)的表中。
  在使用該事件時,access提供了兩個變量,NewData 和Response 。
  當(dāng)輸入的值不在列表中時,Access把這一新值寫入NewData變量中。通過訪問NewData可將新值添加到主表中。
  Response有三個值可取:acDataErrDisplay (默認(rèn)值)、acDataErrContinue和acDataErrAdded 。
  書寫形式為:
  Response = acDataErrDisplay
  Response = acDataErrContinue
  Response = acDataErrAdded
  它們的含義為:
  1、acDataErrDisplay為用戶顯示默認(rèn)的消息。當(dāng)不答應(yīng)用戶將新值添加到組合框的列表中時,可以使用它。
  2、acDataErrContinue 不為用戶顯示默認(rèn)的消息。假如要為用戶顯示自定義消息時,可以使用它。例如,事件過程能顯示一個自定義對話框以詢問用戶是否要保存新的輸入項(xiàng)。假如回答為 Yes,事件過程將新的輸入項(xiàng)添加到列表中,并將 Response 參數(shù)設(shè)置為 acDataErrAdded。假如回答是 No,事件過程將 Response 參數(shù)設(shè)置為 acDataErrContinue。
  3、acDataErrAdded 不為用戶顯示消息,但在 NotInList 事件過程中將輸入項(xiàng)添加到組合框列表中。在輸入項(xiàng)被添加后,Microsoft Access 將通過重新查詢組合框來更新列表。然后 Microsoft Access 重新檢查字符串和組合框列表,并將 NewData 參數(shù)中的值保存到組合框綁定到的字段中。假如字符串不在列表中,則 Microsoft Access 將顯示一條錯誤消息。
  
  ①當(dāng)主表只有一個字段可以添加新值時,不必另建主表輸入窗體,用"Insert Into表名稱(字段名) Values ('" & NewData & "');"語句將新值直接追加到主表中。以下參考代碼:
  PRivate Sub 控件名_NotInList(NewData As String, Response As Integer)
  DoCmd.SetWarnings False
  DoCmd.RunSQL "Insert Into 表名稱(字段名) Values ('" & NewData & "');"
  Response = acDataErrAdded
  DoCmd.SetWarnings True
  End Sub
  
  ②假如,主表有多個字段需要添加新值時,必須另建基于主表的輸入窗體。在主表窗體的“加載”事件中寫入:
  Private Sub Form_Load()
  If Len(Me.OpenArgs) Then Me.與“多”表窗體中相同字段的控件名 = Me.OpenArgs
  End Sub
  而在“多”表的“不在列表中”的事件中,寫入以下參考代碼:
  Private Sub 控件名_NotInList(NewData As String, Response As Integer)
  If MsgBox("是否要添加新值嗎?", vbInformation + vbYesNo, "尋問") Then
  DoCmd.OpenForm "主表窗體名稱", , , , acFormAdd, acDialog, NewData
  Response = acDataErrAdded
  End If
  End Sub
  

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 蕉岭县| 那坡县| 和顺县| 五大连池市| 新河县| 临潭县| 三门县| 勐海县| 鹤山市| 兴义市| 贡嘎县| 澜沧| 锡林浩特市| 清涧县| 正安县| 山阴县| 牙克石市| 缙云县| 贺兰县| 鹤山市| 石景山区| 道真| 高密市| 平原县| 凌源市| 常山县| 奉节县| 五常市| 绥宁县| 沽源县| 政和县| 韶山市| 开阳县| 呈贡县| 桑植县| 利辛县| 五指山市| 西丰县| 土默特左旗| 尼木县| 同心县|