说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

您想知道有谁正在使用您的 Access 文件吗?(多人环境中)-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
您想知道有谁正在使用您的 Access 文件吗?(多人环境中)-VB资料

主題:您想知道有谁正在使用您的 Access 文件吗?(多人环境中)



如果您使用 Access 建立了一個多人使用的資料庫環境,有時候您必須要知道有誰正在使用程式連進這個共享的資料庫,但是您又不想因為如此而要建立一套完整的 Access 安全系統,您有二個選擇:

第一個: 您可以在資料庫中建立一個 "Login Table",每次使用者進入或離開系統時就 Update 這個 Table.
第二個: 較好一點,您可以使用 msldbusr.dll,它可以告訴您目前正連進資料庫的電腦名稱 (Computer Name),這些資料其實是存放在副檔名為 LDB 的檔案中。一旦您從 DLL 中抓到這些資料,您便可以送出訊息,通知 Client 端的使用者 (Remote User) 結束應用程式,以中斷和資料庫的連結,然後您便可以使用 Exclusive Mode 來維護資料庫了。

在這裡,我們要說明的是第二種方法,也就是使用 msldbusr.dll。它提供了二個 Function,說明如下:

1、LDBUser_GetUsers:呼叫後會傳回二部份,一個是使用者陣列,一個是連結到資料庫的使用者數。

Declare Function LDBUser_GetUsers Lib "MSLDBUSR.DLL" (lpszUserBuffer() _
As String, ByVal lpszFilename As String, ByVal nOptions As Long) As Integer

lpszUserBuffer():傳回使用者陣列,注意!必須使用 ReDim 宣告成變動陣列!
lpszFilename:資料庫名稱 ( .mdb 完整路徑 ),若 .ldb 檔不存在,會傳回錯誤代碼。
nOptions:下參數宣告資料回傳的型態。可以使用的參數有四個,如下:

1=傳回自從 .ldb 產生後,所有曾經使用資料庫的使用者機器名稱 (Computer Name) 及數目。
2=只傳回目前正在使用資料庫的使用者機器名稱 (Computer Name) 及數目。
4=只傳回導致目前資料庫損毀的使用者機器名稱 (Computer Name)。
8=只傳回使用者的總數,但是並不傳回使用者陣列。

2、LDBUser_GetError:呼叫 LDBUser_GetUsers 若有錯誤產生,可根據傳回的錯誤代碼找到說明。

Declare Function LDBUser_GetError Lib "MSLDBUSR.DLL" (ByVal nErrorNo As Long) As String

nErrorNo:呼叫 LDBUser_GetUsers 產生錯誤所傳回的代碼,介於 -1 至 -14 之間。說明如下:

-1 = Can't open the LDB file. ( 無法開啟 LDB 檔案 )
-2 = No user connected. ( 沒有使用者在使用資料庫 )
-3 = Can't create an array. ( 無法建立陣列 )
-4 = Can't redimension array. ( 無法重新建立陣列 )
-5 = Invalid argument passed. ( 傳入無效的參數 )
-6 = Memory allocation error. ( 記憶体配置錯誤 )
-7 = Bad index. ( 無效的索引 )
-8 = Out of memory. ( 記憶体不足 )
-9 = Invalid argument. ( 無效的參數 )
-10= LDB is suspected as corrupted. ( LDB 檔案可能損毀 )
-11= Invalid argument. ( 無效的參數 )
-12= Unable to read MDB file. ( 無法讀取 MDB 檔案 )
-13= Can't open the MDB file. ( 無法開啟 MDB 檔案 )
-14= Can't find the LDB file. ( 找不到 LDB 檔案 )

'範例程式:( 移除所有的 Form,請將以下程式複製到 .bas 檔案中即可執行 )

Option Explicit

Declare Function LDBUser_GetUsers Lib "MSLDBUSR.DLL" (lpszUserBuffer() _
As String, ByVal lpszFilename As String, ByVal nOptions As Long) As Integer

Declare Function LDBUser_GetError Lib "MSLDBUSR.DLL" (ByVal nErrorNo As Long) As String

Sub MAIN()
Dim psMDBFilename As String
psMDBFilename = InputBox("請輸入資料庫名稱:")
If Len(psMDBFilename) Then
ShowUsers psMDBFilename
End If
End Sub


Sub ShowUsers(psFilename As String)
ReDim lpszUserBuffer(1) As String
Dim psError As String
Dim cUsers As Long
Dim iLoop As Long

'呼叫 LDBUser_GetUsers 傳回使用者陣列
cUsers = LDBUser_GetUsers(lpszUserBuffer(), psFilename, 1)

'確認是否傳回使用者陣列
If (cUsers = 0) Then
Debug.Print "No Users."
GoTo Exit_ShowUsers
End If

'若有錯誤則顯示錯誤訊息
If (cUsers < 0) Then
psError = LDBUser_GetError(cUsers)
Debug.Print "Error #:"; cUsers; "--"; psError
GoTo Exit_ShowUsers
End If

'顯示使用者陣列
For iLoop = 1 To cUsers
Debug.Print "User "; iLoop; ":"; lpszUserBuffer(iLoop)
Next iLoop

Exit_ShowUsers:
End Sub

Android开发网将推出每天一类专题 ExifInterface使用,Android 2.0新增类 GraphableButton类实现Android UI开发 Android控件开发之ToggleButton原理 Android标题栏TitleBar全攻略 AsyncTask实例代码演示Android异步任务 重绘TextView类演示Android的Handler Android的SoundPool类使用与利弊 AsyncTask解决Android UI堵塞问题 Android自定义View实例AnalogClock源码 Android UI开发专题(五) Bitmap和Canvas实例 Android UI开发专题(四) View自绘控件 Android UI开发专题(三) 各种Drawable 提高Android开发效率-Eclipse快捷键大全 Android UI开发专题(二) 之绘图基础 Android UI开发专题(一) 之界面设计 Only the original thread that created a view hierarchy can touch its views的相关 Android上的Back键事件捕获 Android蓝牙API之BluetoothSocket类(2) Android蓝牙API之BluetoothSocket类 Android蓝牙API之BluetoothAdapter类(1) Android蓝牙API之BluetoothAdapter类(2) AndroidManifest.xml文件剖析 (三) AndroidManifest.xml文件剖析 (二) AndroidManifest.xml文件剖析 (一) MOTODEV初体验,高效Android开发工具 Simple让BASIC语言编写Android程序 MOTODev试用报告- Android开发效率之源 安装MOTODEV Studio for Android版方法 Android开发工具-motoDEV studio介绍 Android过后Chrome OS又是如何开发? 求助 求一时间函数 用VC做一个IE的ActiveX,要求能通过Internet访问数据库,该怎么弄啊?有例程吗? JDBC如何访问Oracle存储过程返回的结果集? 虚心请教个简单问题!怎样根据数据库读出的的代码(DM),动态匹配出代码意义(DMYY)?急!!! 我有简体的程序代码,也装了繁体98,想转换为繁体版,请帮我提供解决方案把 请问有哪位高人配置过JBuilder编译javabean 怎么读出上传的文件内容,(根据文件路径)? 在Win2003里用属于Administrator用户组但不是Administrator的用户建一个ADSL上网连接,为什么这个用户自己无权使用呢?怎么才能使它有使 设备文本重画的问题 求 <<ibm pc 匯編語言程序設計>>一書, 送400分. 下载文件时不提示我? JB中写代码时光标的问题 vbscript,如何在客户判断EMAIL正确格试! 西风到底怎么样啊? 众为高手好,小弟下载了个电影,打开时有声音,但是显示不了 ACCESS可以用中文作为表名,但不能读取表? 从0-22 抽出 5个数 这几个数不能相同。怎么版。啊。。 求救! 在窗体中如何对ACCESS数据库中的表格进行访问?--在线求助!! 怎么在程序中使用另一个目录下的class?在线等 如何在datagrid绑定后修改datagrid 的header.text的值? 谁知道在PB8下为什么树型控件无法正确显示汉字,急,马上就给分,在线等候! delphi的系统分析员请进来。 关于输入法的聚焦问题!! 病毒通过附件传播的问题 ORACLE不能自动启动的问题 关于提取字符串的问题 indy 9控件的安装,有没有发布版下载! 菜鸟问题,我这个触发器错在哪里? 郁闷!!!帮帮先!!! 急,表怎么添加不了数据??? 怎样实现MDI框架下,桌面窗体总在所有窗体的最后面? 关于html登录表单 想创业的进来看看! 郁闷!!帮忙先 “上网上了一半,突然间网页全部自动关闭?” 急死了,这是怎么回事? delphi的系统分析员请进来。 许多网页底部都有Disclaimer,请问这个词该怎么理解?谢谢! asp连接 orale进行分页时老出错? 请教:如何从XML文件中动态读出对应的信息?万分感谢 delphi的系统分析员请进来。 在Win2k Server中,如何判断当前用户(或应用)是否有SE_SHUTDOWN_NAME权限?在线... 表单连动怎么写呢?用asp。 一个简单问题,却快让我发疯了,请大家帮忙看看 各位大哥又有问题请教了,现在看到很多网页做成左右2个FrameSet,当中通过一个类似箭头的图片,当点击后,可以缩进一个FrameSet,请问大哥 简单问题求教 急!!!如何在MSHFlesGrid中实现Tab键的功能? Tomcat连接数超过最大连接数时,需重启tomcat,如何解决? 关于XP中测试先行的具体实践办法 重载TCustomComboBox如何使list中选择的内容经过我修改后再填入edit 防溺水要哪几点 你的微笑带走了我的心 用英语怎么翻译 "退”的反义词是什么? 不耻下问的故事 微笑 由心而生 翻译成英文 come,short,fast的反义词 不耻下问小故事急用 神级人物呢? 退的反义词是近吗 怎么防溺水 为科学奉献终身的名人有哪些短点 full heavy fast 的反义词 ( ) ( come) have please.用适当形式填空 胜多欺少(词语接龙) 退的反义词是什么 用负荆请罪、千方百计、攻无不克造句 那时,我总是不由得想起那位“耳聋”的老人 改为双重否定句怎么改啊? My brother has a good (p ) for coming vacation while和as的区别( )modeling business is by no means easy to get into,the good models will always be in demand.A.while B.as 为什么选A而不选B呢? 已知△ABC的两边AB、AC的长是关于x的一元二次方程X²-(2m+3)x+m²+3m+2=0的两个实数根,且第三边长为5.(1)是否存在实数m,使△ABC是以AB为底边的等腰三角形?若存在,求出m的值;若不存在,说明 八年级上册数学习题11.18题 急.在△ABC中,AB=2,BC=4,△ABC的高AD与CE的比是多少?(提示:利用三角形的面积公式.) 人琴俱亡中 你认为王子猷 月余亦卒 的原因是. 初二数学求大神神神. 合作的反义词是什么 形象表达的句子,如:快刀斩乱麻 那时,我总是想起那位“耳聋”的老人改写成反问句 ( )的欢笑 合作的反义词 一组对边相等一组对角也相等的平行四边形是平行四边形这句话对不对啊 while与as的区别 已知:在平行四边形ABCD中,对角线AC、BD相交于点O,点P是平行四边形ABCD外一点,且PA⊥PC,PB⊥PD,垂足为P.求证:四边形ABCD为矩形! 《路》揭示了怎样的生活哲理? as 和 while 的区别... 澳门特首第一任是谁 Richard Goolie是什么意思 这道题目怎么写?体积是多少? put an end to和 bring an end to有什么区别? 比喻新鲜事物蓬勃出现的成语 急需“做一个热爱生活热爱工作的人”的演讲稿 集体的反义词是什么? 考点同步解读 必修1 人教版的答案 小偷的英语 团队的反义词 什么是病毒?病毒是如何与宿主相互作用的?病毒可能引起那些疾病?在日常生活中如何阻断传播? 小偷英语怎么写 几队反义词登上的反义词是?震惊的反义词是 力争上游突出一个(jìng)字 强生健体突出一个(jìng)字 把拼音改成恰当的字 小偷的英文单词是什么? 组织的反义词 环境整洁突出一个“净”字;禁止喧哗突出一个“( )”字;力争上游突出一“( )”字;讲文明礼貌突出一个“( )”字;强身健体突出一个“( )”字.十万火急! 如何看待“儿孙自有儿孙福”拜托各位大神有的人给儿子买了房,这样的人有,有的人说儿孙自有儿孙福,意思是你自儿奔吧,能奔个样是个什么样 若a:b:c=3:4:5,则5a+2b-c除以5a-2b+c=什么? 力争上游突出一个什么字 若2√﹙2-a﹚/6与6√﹙2a-3﹚/4 是同类二次根式,则a的值是多少?3Q 易语言随机数每次都取随机数 亲们,我需要步骤,11题 设ab是两个数 规定a△b=4b-(a+b)÷2 求3△(4△6)拜托各位了 3Q 关于易语言随机数标签1的标题 在随机的时间内加1 比如:我想让一个标签的标题随机的时间内加1个单位的数字 大雨过后,春笋生长旺盛.比喻新生事物蓬勃涌现.是什么成语. 关于献身科学的名言警句 易语言 判断随机数想要的效果是如:先取一个随机数 1-10 这个数如果不等于9就重新取随机数,一直到取到9为止. 新华国际时评:“三无”安倍何谈“领袖中美就推动朝鲜半岛无核化和重启六方会俄圣彼得堡将遭强飓风袭击 涅瓦河水位日本一办公室里种大麻盈利逾千万日元 美国14名男子因向未成年人传播色情图德联邦议院将召开特别会议商讨美监听事美一独臂独腿男勇闯火海协助救出两名儿美国14名男子因向未成年人传播色情图泰国美白产品广告被批有种族歧视之嫌已日本研发“织女”机器人助人感受与亲友美16岁少年因被没收手机心生不满将母黎巴嫩毒品走私严重 被指可能用于资助国际奥委会主席称赞索契为冬奥会准备工美国一男子被误判坐牢20余年后被释放法媒称索马里“青年党”一头目被美国无新加坡突查检查起重机安全 90家公司美气象学家发现预知高热天气方法 可提英国夫妇靠生孩子领社会福利 已生9名安倍访问土耳其 称日援建地铁象征日土美一父亲因将1岁幼儿独自留在家中遭到调查称法国火葬增加致扫墓鲜花减少影响黑龙江原人大副主任隋凤富被罢免全国人云南省直机关举行首届“感动在身边·最云南工商学院为树木佩戴“身份证” 利浙江路桥“天网”盯公车两年:“一张网刘云山会见第七届10+3媒体合作研讨刘云山前往朝鲜驻华使馆出席金正日逝世食品药品投诉举报管理办法征求意见中方:愿继续同巴基斯坦深化反恐执法合张德江与韩国国会议长会谈南昌大学原校长周文斌悔过书:我就是学邹市明3月战泰拳王 首度争夺IBF蝇刘云山前往朝鲜驻华使馆出席金正日逝世刘云山会见第七届10+3媒体合作研讨河南新乡盐业管理局书记廖峰涉违纪违法新华网:为中欧合作增添“浓浓新绿”江西安远涉20余名官员稀土腐败案透视郑州一男子冒充交警查车被拘留河南安阳政法委书记郭法杰涉嫌违纪违法湖南科大新上任校长接受学生“拷问”(墨尔本民众纷纷在瑞士莲咖啡馆门前献花成都军区昆明总医院援建鲁甸桃源中心小
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘