vb+access做的一个管理系统怎么能实现在局域网内的数据库共享

问:最近在试着用vb+access做的管理系统怎么能实现在局域网内的数据库共享。现在是用ado链接数据库的,还有,如何打包成客户端安装程序,如何保证客户端没有装acces... 问:最近在试着用vb+access做的管理系统怎么能实现在局域网内的数据库共享。
现在是用ado链接数据库的,还有,如何打包成客户端安装程序,如何保证客户端没有装access也可以浏览远程数据库?谢谢,希望有高手详细解答
展开
 我来答
zdingyun
推荐于2016-05-27 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48174
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
vb+access做的一个管理系统可通过放置于局域网的服务器或某台机器的共享数据库实现数据共享。
1)首先把程序折分,分成一个前台VB程序,一个后台数据库。
VB程序可使用Ado数据对象或数据控件等灵活使用SQL结构化查询语句操纵后台ACCESS数据库,通过各种表格控件显示信息。
利用ACCESS的数据库拆分向导可以很轻松的做到把数据库分为前台与后台两个部分,前台保留除表之外的所有对象,包括:查询、窗体、报表、宏或代码,并且自动链接了后台数据库的表;而后台只保留了表对象。
Ø 打开数据库-工具-数据库实用工具-折分数据库
Ø 在弹出“数据库拆分器”后单击“拆分数据库”按钮,弹现“创建后端数据库”对话框。
Ø 拆分后的前台保留原数据库名,而后台数据库名通常会在原数据库名后加_be,可以指定后台保存在一个特定的文件夹内。
2)共享后台数据库所在的文件夹。
Ø 打开资源管理器,选中文件夹,右键单击,选择“共享与安全”。
Ø 选中“在网络上共享这个文件夹”。
Ø 如果想让局域网内其他机上的可以更新数据,就在“允许网络用户更改我的文件”上勾中。
以上是以Windows XP为例,其他系统会有所不同。
3)映射网络驱动器。
Ø 在“网络邻居”上右键单击,或在“资源管理器”中选择工具菜单,选择“映射网络驱动器”。
Ø 指定一个驱动器(盘符),譬如:M。这个M盘为随意的,可以指定任意其他的盘符,但要在局域网内所有要同享数据库的机上映射统一的盘符至后台数据库所在的共享文件夹。
Ø 指定此盘符映射的文件夹,也就是后台数据库所在的那个共享文件夹。可以单击浏览按钮选择,也可以直接输入。
Ø 选中“登录时重新连接”
4)重新链接前台程序库的表链接。
5)上面做完后机器上的工作就完成了,接下来就是在局域网中的每台机上都映射那个共享文件夹至同样的驱动器(盘符)如:M。
6)最后一步,分发前台程序库,所有设置局域网内数据库共享的工作完成。以后程序库功能升级后,直接分发程序库就行了。
参考:http://blog.csdn.net/u010240338/article/details/9025457
匿名用户
推荐于2016-01-20
展开全部
最简单直接的方法就是把数据库文件共享,程序里再做一个设置用来读取数据库所在路径(设置可以保存在文本文件中,通常用ini文件),那么数据库路径格式为:\\ABC\DataBase\mydb.mdb,其中abc为数据库所在电脑名称(用ip也可以),DataBase为数据库所在文件夹(要把DataBase设为共享,并放开读写权限),客户端如果没有安装access的话,需要安装一个MDAC(20M左右)。
追问
共享的数据库可不可以是加密的数据库。能不能给我编一个自动识别路径的代码。

先谢谢你,我再给你追加30分
追答
可以加密的,自动识别是不可能了,因为不同的电脑名称及IP都是不同的,只能通过设置实现
连接字符串格式:"Provider=Microsoft.jet.OLEDB.4.0;Data Source= " & GDBpath & ";Persist " _
& "Security Info=False;Jet OLEDB:Database Password=123456;"
路径可以存在ini文件中:
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'读取字符串值
Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As String
Dim ResultString As String * 144, temp As Integer
Dim S As String, i As Integer
temp% = GetPrivateProfileString(SectionName, KeyWord, "", ResultString, 144, INIFile)
If temp% > 0 Then
S = ""
For i = 1 To 144
If Asc(Mid$(ResultString, i, 1)) = 0 Then
Exit For
Else
S = S + Mid$(ResultString, i, 1)
End If
Next
Else
temp% = WritePrivateProfileString(SectionName, KeyWord, DefString, INIFile)
S = DefString
End If
GetIniS = S
End Function
'写入字符串值
Sub SetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String)
Dim res%
res% = WritePrivateProfileString(SectionName, KeyWord, ValStr, INIFile)
End Sub

'具体的用法你可以多试试,研究研究
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c545f1b

2011-09-14 · TA获得超过377个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:98万
展开全部
这个需要你在做数据库连接时的代码中做好IP地址的设置,然后只需将数据库放在主机上(所设置的IP地址所在的电脑)上即可进行操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式