999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

如何隨心所欲地輸出報表中的字段

2011-12-29 00:00:00馬鵬衛
考試周刊 2011年63期


  摘 要: 報表的主要作用是打印輸出格式化的數據信息。本文從實用的角度出發,給出了隨心所欲輸出任意表中的任意多個字段的方法,使得數據最終顯示清晰明了。
  關鍵字: 權限 報表 字段 輸出
  
  當今社會的數據處理與日俱增,如何能從龐大的數據中找出符合條件的數據信息,并且將它們快速清晰地輸出,就顯得尤為重要。Access數據庫簡單易用,但報表在輸出數據時往往需要事先設置好報表所要綁定的表和表中的相關字段。這樣一來,如果要更換表或表中的字段,就得重新修改報表,顯得較為麻煩。為此,可以做一個窗體,表和字段的選擇全在窗體中進行(如圖1),最后只需單擊“輸出報表”按鈕即可輸出報表,達到一勞永逸隨心所欲輸出任意表中任意多個字段的報表的目的。
  一、獲取表
  在Access數據庫系統中,用戶創建的對象的相關信息存儲在系統表MSysObjects中,可通過查詢它來獲取我們想要的表。
  (1)設置對系統表MSysObjects的訪問權限。
  默認情況下,是無法直接訪問系統表MSysObjects的,需要手工設置一下:
  首先單擊Access數據庫“工具”菜單中的“選項”命令,在“視圖”頁上將“系統對象”選中,單擊“確定”按鈕保存設置。
  然后單擊“工具”菜單中“安全”菜單中的“用戶與組權限”命令,在“權限”頁面中,在“對象類型”下拉列表中選擇“表”,在“用戶名/組名”中選擇“管理員”用戶,在“對象名稱”中選擇“MSysObjects”表,在“權限”中將“讀取數據”選中,單擊“確定”按鈕保存設置即可完成。
  通過上面兩步設置后,就可以看見并對系統表MSysObjects進行訪問了。
  (2)建立查詢,獲取表。
  在系統表MSysObjects中,Name字段值表示數據對象的名稱;Type字段值表示數據庫對象的類型:1表示表,3表示系統對象,5表示查詢,-32761表示模塊,-32764表示報表,-32766表示宏,-32768表示窗體,-32756則表示數據訪問頁;Flags字段中值為0的表示用戶創建的對象。為此獲得數據庫表的名稱的查詢應為:
  SELECT MSysObjects.Name
  FROM MSysObjects
  WHERE((MSysObjects.Type=1)AND(MSysObjects.Flags=0))
  在圖1所示的窗體中,通過組合框(名稱為zhk)來列出數據庫系統中所有的表(不包括系統表),所以該組合框的“行來源”即為上面的查詢語句。
  二、列出表中的字段
  當在組合框中選擇了表后,列表框(名稱為lbk)應自動列出相應表所包含的所有字段,所以還需對組合框的“更新事件”進行相應的如下設置:
  Private Sub zhk_AfterUpdate()
  Dim dbs As DAO.Database,tdf As DAO.TableDef
  Dim fld As DAO.Field,rst As DAO.Recordset
  Dim tbl As String
  tbl=Forms!frmtest!zhk
  Set dbs=CurrentDb
  Set tdf=dbs.TableDefs(tbl)
  DoCmd.SetWarnings False
  DoCmd.RunSQL("Delete*from TableFields")
  DoCmd.SetWarnings True
  Set rst=dbs.OpenRecordset("TableFields",dbOpenDynaset)
  For Each fld In tdf.Fields
  If fld.Type>=1 And fld.Type<=8 Or fld.Type=10 Then
  rst.AddNew
  rst!FieldName=fld.Name
  rst!FieldType=fld.Type
  rst.Update
  End If
  Next fld
  Set dbs=Nothing
  lbk.Requery
  End Sub
  上面代碼的作用就是將選擇的表中的字段暫時存儲在一個臨時表TableFields中,TableFields的結構如圖2,然后將選擇的結果再返回給列表框,所以將列表框lbk的行來源設為“SELECT FieldName FROM TableFields”。
  三、重選表、字段
  當表和表中的字段都列出后,就可進行相應的選擇,以便精簡報表的中字段。如果此時需重新選取表,只需單擊組合框重新選擇表;如果需重新選取字段,應先將列表框中已有的字段全部清除,然后再重新選擇表中的字段。重選功能需在窗體中添加一個命令按鈕(名稱為cmdReset),該命令按鈕的單擊事件代碼可設為:
  Private Sub cmdReset_Click()
  DoCmd.SetWarnings False
  DoCmd.RunSQL"Delete* from TableFields"
  Me!lbk.Requery
  DoCmd.SetWarnings True
  End Sub
  至此,表和表中字段的選擇操作已完全實現,剩下的輸出報表任務就變得相對簡單了。
  通過以上建立窗體,在窗體中對數據庫包含的表和表中的字段進行快速選擇,這樣在報表輸出時,就無需重新設置報表的記錄源和結構,同時精簡了報表中的字段,達到隨心所欲地輸出報表的目的。
  
  參考文獻:
  [1]陳可欣.Access VBA數據庫高效開發范例應用[M].北京:中國青年出版社,2005.

主站蜘蛛池模板: 日本精品视频一区二区| 伊人久久婷婷五月综合97色| 中文字幕天无码久久精品视频免费 | 国产va在线| 97se亚洲| 亚洲欧洲免费视频| 国产亚洲一区二区三区在线| 无码网站免费观看| 欧美日韩资源| 再看日本中文字幕在线观看| 日本福利视频网站| 亚洲精品无码日韩国产不卡| 亚洲无线一二三四区男男| 又黄又湿又爽的视频| 亚洲av色吊丝无码| 亚洲日韩国产精品无码专区| 国产黄在线免费观看| 91精品伊人久久大香线蕉| 欧美综合区自拍亚洲综合天堂| 亚洲自拍另类| 欧美日韩在线观看一区二区三区| www.亚洲天堂| 亚洲a级在线观看| 999国内精品久久免费视频| 一级黄色片网| 亚洲成在人线av品善网好看| 青青青国产视频手机| 97av视频在线观看| 高清欧美性猛交XXXX黑人猛交 | 狠狠久久综合伊人不卡| a毛片在线| 青草免费在线观看| 最新国产在线| 亚洲av片在线免费观看| 欧美a在线| 欧美区一区| 亚洲伊人久久精品影院| 国产色婷婷视频在线观看| a级毛片在线免费观看| 亚洲国产亚洲综合在线尤物| 色婷婷成人| 免费aa毛片| 亚洲欧州色色免费AV| 99久久精品久久久久久婷婷| 色国产视频| 99re视频在线| 天天综合色网| 日本人妻丰满熟妇区| 亚洲视频欧美不卡| 一级看片免费视频| 久久精品免费国产大片| 亚洲最新地址| 国产91精品久久| 国产成人h在线观看网站站| 91精品网站| 91麻豆精品国产91久久久久| 亚洲综合一区国产精品| 欧美日韩福利| 91免费国产高清观看| 免费毛片视频| 一级在线毛片| 免费观看亚洲人成网站| 欧美精品伊人久久| 成年午夜精品久久精品| 国产aⅴ无码专区亚洲av综合网| 人妻丰满熟妇αv无码| 国产又黄又硬又粗| 伊人查蕉在线观看国产精品| 欧美啪啪一区| 日本精品视频一区二区| 国产成人免费手机在线观看视频| 香蕉99国内自产自拍视频| 免费一级毛片在线观看| 久久综合九九亚洲一区| 国产成人亚洲精品色欲AV| 精品一区二区三区水蜜桃| 中文字幕第1页在线播| 日韩资源站| 国产网站黄| 久久久噜噜噜久久中文字幕色伊伊 | 国产在线观看91精品| 亚洲精品欧美日本中文字幕|