Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何让数据库文件只能在指定电脑上使用

宋和兴  发表于:2012-01-17 11:53:39  
复制

请教老师:

     如果我想让数据库文件只能在当前的这台电脑上使用,如果有被拷贝到其它电脑上使用就报错,那要如何处理,期待您的回复!

点击下载此附件

 

Top
蟹仔 发表于:2012-01-17 13:34:21
点击下载此附件 自己看附件,这是获取机器码跟系统用户名的代码。你自己在窗体上加代码判断是否这个机器码登陆,否的话关闭窗体就行了。还有一种变通的办法是判断数据库目录下是否存在某个文件,不存在就关闭。我比较喜欢后者这种方法。

zhg 发表于:2012-01-25 21:44:42

代码怎么写呀,请给个实例。



蟹仔 发表于:2012-01-26 16:57:15
都已经获得了计算机名称,还不会写啊?我写出来了你能打得开吗?都说了只能在指定电脑打开。我写好了不就是只有我这台电脑能打开了?你先打开窗体1.看看你的计算机登陆用户跟计算机名是什么,接着复制下来,再把代码改成:if strUserName <> "XXXXXXXXX" or strComputerName <> "XXXXXXXXXXX" then docmd.quit end if不就行了。

zhg 发表于:2012-01-27 10:10:53

不好意思,我不会改代码呀军长大人,我想把后台数据库只在指定的服务器上使用,但多用户能访问数据库,我用的是Access2003的,这个数据库用破解工具就能打开,放在服务器上共享服务数据实在不安全,只想绑定服务器机器码,如果用户把后台数据库复制去打不开就好了。期待您的回复!



zhg 发表于:2012-01-27 10:54:15

Option Compare Database

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

 

Private Sub Form_Load()
    Dim strUserName As String, strComputerName As String        '¶¨Òå±äÁ¿,ÓÃÓÚ±£´æÓû§Ãû¼°µçÄÔÃû
    Dim lngUserNameSize As Long, lngComputerNameSize As Long    'ÓÃÓÚ»º³åÇøµÄ³¤¶È
    lngUserNameSize = 255                                       '»º³åÇøµÄ³¤¶ÈΪ 255
    lngComputerNameSize = 255                                   '»º³åÇøµÄ³¤¶ÈΪ 255
    strUserName = String$(lngUserNameSize, 32)                  '³õʼ»¯»º³åÇø
    strComputerName = String$(lngComputerNameSize, 32)          '³õʼ»¯»º³åÇø
   
    GetUserName strUserName, lngUserNameSize                'ʹÓÃAPIº¯Êý½«µ±Ç°µÇ¼Óû§Ãû´æÈë strUserName ÖÐ
    GetComputerName strComputerName, lngComputerNameSize    'ʹÓÃAPIº¯Êý½«µçÄÔÃû´æÈë strComputerName ÖÐ
Me.Text0 = strUserName
Me.Text2 = strComputerName
End Sub



zhg 发表于:2012-01-28 22:12:57

我把您窗1显示的用户名,电脑名添加到代码放到窗体属性打开栏if strUserName <> "王小九" or strComputerName <> "岭南主机" then docmd.quit end if 为什么显示找不到王小九\岭南主机。敬请赐教!



总记录:6篇  页次:1/1 9 1 :