如何通过程序实现 把vb后台的数据库存到a盘??急!
我想在表单里加一个command控件,命名为:存盘
目的是:想让用户直接点击这个按钮 即可通过程序实现把后台数据库或者是数据库里的某一张表(最好是某一张表)自动存到a盘里。。
各位能否帮我出出主意,有什么方法可以实现?
这个命令里的代码,该如何写才是??
尽可能详细讲讲,谢谢
我用的数据库是access
问题点数:100、回复次数:6Top
1 楼cxa_2002(萱)回复于 2002-09-14 20:04:25 得分 0
up一下Top
2 楼JennyVenus()回复于 2002-09-14 20:52:10 得分 0
什么意思,看你的目的就是从access中读取数据,写文件呀Top
3 楼cxa_2002(萱)回复于 2002-09-15 18:55:55 得分 0
具体说:就是当用户点了这个按钮的时候,系统会弹出保存文件的对话框,
提示用户保存数据库,用户可以自由选择保存路径,比如:a盘
如果能把数据库的资料转换成文本再保存也可以
我不知道如何编写这个代码,请大家提示一下
up一下Top
4 楼Latitude(Henry[MS MVP])回复于 2002-09-15 22:55:23 得分 20
如果想存成a盘里的文本,不是很难的事。
示例如下:
1)我的数据库有一个表Henry,有三个字段:
2)转存的目标: 字段1 |字段2 |字段3 各字段间空开20个字节
两个难点:
转存,汉字的字节位置(方法是:lenb(strconv(Expression))把汉字转成两个字节处理)
窗体:一个文本框:txtmdb ,一个按钮:cmbSave , 一个表格:Datagrid1,一个ADODC:Adodc1
代码:
Dim strDbname As String
Dim intFilenum As Integer
Dim strRecord As String'用于保存字段行
Dim strRecord1 As String'用于保存字段一
Dim strRecord2 As String'用于保存字段二
Dim strRecord3 As String'用于保存字段三
Private Sub Form_Load()
txtmdb.Text = App.Path & "\database.mdb" '数据库的路径可以自己另写
strDbname = Trim(txtmdb.Text)
Adodc1.CommandType = adCmdText
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; _
Data Source=" & strDbname & ";Persist Security Info=False"
Adodc1.RecordSource = "select * from Henry" 'Henry是表名
Adodc1.Refresh
End Sub
Private Sub cmdSave_Click()
On Error Resume Next
strRecord = ""
intFilenum = FreeFile
'建议你调试时,先用app.path & "\dbfile.txt"代替"a:\dbfile.txt"
If Dir( "a:\dbfile.txt") = "" Then
'看看a盘有没有这个文件,建议先做个a驱中有无盘的判断
Open "a:\dbfile.txt" For Output As #intFilenum
Close #intFilenum
Else
Kill "a:\dbfile.txt" '有就删除掉
End If
intFilenum = FreeFile
Open "a:\dbfile.txt" For Append As #intFilenum
For intTempi = 0 To Adodc1.Recordset.RecordCount - 1 '主要就是这一段了
strRecord1 = ""
strRecord2 = ""
strRecord3 = ""
strRecord = ""
strRecord1 = Adodc1.Recordset.Fields(0).Value & _
Space(20 - LenB(StrConv(Adodc1.Recordset.Fields(0).Value, vbFromUnicode)))
strRecord2 = Adodc1.Recordset.Fields(1).Value & _
Space(20 - LenB(StrConv(Adodc1.Recordset.Fields(1).Value, vbFromUnicode)))
strRecord3 = Adodc1.Recordset.Fields(2).Value & _
Space(20 - LenB(StrConv(Adodc1.Recordset.Fields(2).Value, vbFromUnicode)))
strRecord = strRecord1 & "|" & strRecord2 & "|" & strRecord3
Print #intFilenum, strRecord
Adodc1.Recordset.MoveNext
Next
Close #intFilenum
End Sub
---
我已经测试通过了,没有任何明显问题
by Henry
Top
5 楼wwwxjjj(wwwxjjj)回复于 2002-09-15 23:29:28 得分 0
以上的方法都麻烦.
dim mRs as new recordset
.....
mrs.open [表|过程|查寻|...]
mrs.save (文件名)
就完事了Top
6 楼cxj_2000(永远到底有多远?)回复于 2002-09-17 20:15:31 得分 80
Dim fsoSys As New Scripting.FileSystemObject
Dim fsoFile As File
Set fsoFile = fsoSys.GetFile("f:\course system\course_info_e.mdb")
fsoFile.Copy ("d:\新建文件夹\course_info_e.mdb")
Set fsoFile = NothingTop




