'将任何文件从数据库中下载到本地: Public Function LoadFile(ByVal col As ADODB.Field, ByVal FileName As String) As Boolean '获得binary数据 On Error GoTo myerr: Dim arrBytes() As Byte Dim FreeFileNumber As Integer lngsize = col.ActualSize arrBytes = col.GetChunk(lngsize) FreeFileNumber = FreeFile Open FileName For Binary Access Write As #FreeFileNumber Put #FreeFileNumber, , arrBytes Close #FreeFileNumber LoadFile = True myerr: If Err.Number <> 0 Then LoadFile = False Err.Clear End If End Function
'将文件从本地上传到数据库中 Public Function UpLoadFile(ByVal FileName, ByVal col As ADODB.Field) As Boolean On Error GoTo myerr: Dim arrBytes() As Byte Dim FreeFileNumber As Integer FreeFileNumber = FreeFile Open FileName For Binary As #FreeFileNumber n = LOF(FreeFileNumber) ReDim arrBytes(1 To n) As Byte Get #FreeFileNumber, , arrBytes Close #FreeFileNumber col.AppendChunk (arrBytes) UpLoadFile = True myerr: If Err.Number <> 0 Then UpLoadFile = False Err.Clear End If End Function
将Word表格导入Access数据库
一、Word中的准备工作
要将Word表格导入到Access文件中,首先需要在Word 2000/2002中将文件的副本保存为用逗号分隔的或制表符分隔的无格式文本文件,操作方法如下:
1.将表格转换为文本,操作方法是:选择要转换的表格内容,然后在“表格”菜单上,指向“转换”,单击“表格转换成文本”命令;在“文字分隔符”下,单击“逗号”,再单击“确定”按钮。
2.请确认分隔的文本文件在每个字段中有相同类型的数据,在每一行中有相同的字段。这要求你在将Word表格转换为文本时,不要选择表格的标题行。
3.在“文件”菜单上,单击“另存为”命令。
4.在“文件名”框中输入新的文件名称。
5.在“保存类型”列表中,单击“纯文本”,然后单击“保存”按钮。
6.关闭Word。
二、在Access 2000/2002中的操作
1.切换到Access 2000/2002,然后打开新的或现有的数据库。
2.在“数据库”窗口中,单击“对象”栏中的“表”选项。
3.在“文件”菜单上,指向“获取外部数据”,然后单击“导入”命令。
4.在“文件类型”框中,单击“文本文件”。
5.在“文件名”框中,输入要导入的文本文件名称,或者在文件列表中,单击要导入的文本文件名称。
6.单击“导入”按钮。
7.根据“导入文本向导”对话框中的指导进行操作。
若要查看更多的选项或修改规则,例如字段分隔符,请在第一个向导对话框中,单击“高级”按钮。如果要保存你指定的选项,以便在下次导入相似的文本文件时使用,请单击“另存为”按钮
最好把整个Word文档保存到数据库,这样就不会丢失Wrod中的格式及所有其它的一些内容。
完整的代码如下:如果是用SQL那么保存文件的字段类型应该是Binary。如果是用Access,那么保存文件的字段应该用OLD对象,在表中显示为长二进制数据。
'将任何文件从数据库中下载到本地:
Public Function LoadFile(ByVal col As ADODB.Field, ByVal FileName As String) As Boolean '获得binary数据
On Error GoTo myerr:
Dim arrBytes() As Byte
Dim FreeFileNumber As Integer
lngsize = col.ActualSize
arrBytes = col.GetChunk(lngsize)
FreeFileNumber = FreeFile
Open FileName For Binary Access Write As #FreeFileNumber
Put #FreeFileNumber, , arrBytes
Close #FreeFileNumber
LoadFile = True
myerr:
If Err.Number <> 0 Then
LoadFile = False
Err.Clear
End If
End Function
'将文件从本地上传到数据库中
Public Function UpLoadFile(ByVal FileName, ByVal col As ADODB.Field) As Boolean
On Error GoTo myerr:
Dim arrBytes() As Byte
Dim FreeFileNumber As Integer
FreeFileNumber = FreeFile
Open FileName For Binary As #FreeFileNumber
n = LOF(FreeFileNumber)
ReDim arrBytes(1 To n) As Byte
Get #FreeFileNumber, , arrBytes
Close #FreeFileNumber
col.AppendChunk (arrBytes)
UpLoadFile = True
myerr:
If Err.Number <> 0 Then
UpLoadFile = False
Err.Clear
End If
End Function
先将你的Word文档转换成RTF文档。再用两个语句方法既可:一个是RichTextBox1.LoadFile strOpen, 0,另一个是rsRecodset("字段名").AppendChunk RichTextBox1.TextRTF。其中strOpen是你要打开的RTF文档。
前一个语句将你的RTF文档显示到RichTextBox控件中,后一语句将RichTextBox控件中的格式化文档灌入数据库字段。这是两个核心语句,其余配合的语句我想你应该知道。如果你不想用第二个语句,那么再画一个Data数据控件则更简单。