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

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

2011-12-29 00:00:00馬鵬衛(wèi)
考試周刊 2011年63期


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

主站蜘蛛池模板: 女同国产精品一区二区| 国产亚洲欧美在线中文bt天堂 | 91区国产福利在线观看午夜| 喷潮白浆直流在线播放| 国产综合精品一区二区| 久久亚洲黄色视频| аⅴ资源中文在线天堂| 91精品久久久久久无码人妻| 最新国产午夜精品视频成人| 青青草原国产一区二区| 久久精品最新免费国产成人| 国产在线自在拍91精品黑人| 重口调教一区二区视频| 黄色在线不卡| 日韩小视频在线播放| 国产午夜看片| 国产成人做受免费视频| 亚洲—日韩aV在线| 一级成人a毛片免费播放| 国产精鲁鲁网在线视频| 伊人久久大香线蕉aⅴ色| 九色免费视频| 国产自在线播放| 亚洲最新网址| 狂欢视频在线观看不卡| 四虎永久免费在线| 一级毛片在线播放免费观看 | 国产网友愉拍精品| 71pao成人国产永久免费视频| 色婷婷狠狠干| 日本福利视频网站| 欧美中文一区| 国产精品美人久久久久久AV| 国产精品手机在线播放| 国产精品久久久久鬼色| 香蕉国产精品视频| 四虎成人在线视频| 久久久久久久久久国产精品| 久久国产乱子伦视频无卡顿| 亚洲无限乱码| 欧美第九页| 日本91视频| 久草国产在线观看| 一级高清毛片免费a级高清毛片| 精品国产乱码久久久久久一区二区| 高清无码一本到东京热| 欧美午夜精品| 久久综合一个色综合网| 亚洲精品国产精品乱码不卞| 日本三级黄在线观看| 在线无码av一区二区三区| 亚洲天堂.com| 国产成人欧美| 54pao国产成人免费视频| 亚洲成人www| 9丨情侣偷在线精品国产| 亚洲中文在线看视频一区| 国产一区二区三区免费观看| 亚洲乱亚洲乱妇24p| 99热这里只有精品在线观看| 色视频国产| 伊人久综合| 午夜欧美理论2019理论| 久久国产V一级毛多内射| 国产高清在线丝袜精品一区| 好吊妞欧美视频免费| 久久国产精品麻豆系列| 伊人天堂网| 国产高清色视频免费看的网址| 美女国内精品自产拍在线播放| 四虎综合网| 久操线在视频在线观看| 日本高清有码人妻| 国产在线观看人成激情视频| 老熟妇喷水一区二区三区| 久久人午夜亚洲精品无码区| 久久综合结合久久狠狠狠97色| 国产精品女熟高潮视频| 亚洲品质国产精品无码| 爆操波多野结衣| 天天摸天天操免费播放小视频| 中文字幕免费在线视频|