>很多朋友都有想远程对access数据库进行访问,不过因为它本身设计为桌面数据库,对网络支持不好,所以很多朋友没有实现这个功能。 其实可以我们自己给它增加远程功能,就是制作一个服务端对sql命令进行解析和返回recordset数据。 主要原理就是将recordset转化为二进制数据进行传送,客户端接收到之后再转换回recordset,客户端就可以和本地访问一样的操作数据了。 这个是服务端将recordset转换为二进制的代码: Public Function RsToBin(Rs As Recordset) As Variant '记录集转换为二进制数据 Dim objStream As Stream Set objStream = New Stream objStream.Open objStream.Type = adTypeBinary Rs.Save objStream, adPersistADTG objStream.Position = 0 RsToBin = objStream.Read() Set objStream = Nothing End Function 这个是客户端将接收到的二进制数据转换为recordset的代码: Public Function BinToRs(vData As Variant) As Recordset '将服务器返回的二进制转换为记录集 Dim objStream As Stream Dim objRs As Recordset
Set objRs = New Recordset Set objStream = New Stream objStream.Open objStream.Type = adTypeBinary objStream.Write vData objStream.Position = 0 objRs.Open objStream Set BinToRs = objRs Set objRs = Nothing Set objStream = Nothing End Function