Height = 255
Left = 480
TabIndex = 4
Top = 4800
Width = 495
End
Begin VB.Label Label2
Caption = "内容"
Height = 255
Left = 480
TabIndex = 1
Top = 960
Width = 495
End
Begin VB.Label Label1
Caption = "标题"
Height = 255
Left = 480
TabIndex = 0
Top = 503
Width = 495
End
End
Attribute VB_Name = "finput"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Command1_Click()
CommonDialog1.DefaultExt = App.Path
CommonDialog1.Filter = "Pictures (*.bmp;*.jpg;*.gif) *.bmp;*.jpg;*.gif" '注意要加引号
CommonDialog1.ShowOpen
Text2.Text = CommonDialog1.FileName
End Sub
'保存文档的标题,和文档的内容,以及相应的图片
Private Sub Command2_Click()
'判断是否所写的文档是否已经存在数据库了,如果没有,则保存,否则
'不能保存(利用一个"临时rs"查询标题)
Dim subject, sql As String
Dim temp_photo As Stream
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset '定义rs1得到类别的id
Dim class_id As Integer '定义得到类别的ID号
subject = Trim(Text1.Text) '获得标题
sql = "select * from paper where subject='" subject "'"
'开始查询
rs.Open sql, cn, adOpenDynamic, adLockPessimistic
'判断标题是否存在
If rs.EOF Then '文档不存在,开始保存
Dim tempdate As Date '临时时间变量
tempdate = Date
rs.AddNew
'得到类别的ID
sql = "select cl_number,class from class where class='" Combo1.Text "'"
rs1.Open sql, cn, adOpenDynamic, adLockPessimistic
rs("class") = rs1("cl_number")
rs1.Close '关闭rs1
rs("subject") = subject
rs("content") = RichTextBox1.Text
If Trim(Text2.Text) <> "" Then '假如有图片,开始得到图片文件
Dim image_data() As Byte '定义图片保存的变量
Open Trim(Text2.Text) For Binary As #1
ReDim image_data(LOF(1) - 1)
Get #1, , image_data()
rs("photo").AppendChunk image_data()
End If
rs("inputtime") = tempdate
rs("modifytime") = tempdate
rs.Update '可能出现保存不成功的现象,所以要考虑可能会出现错误
MsgBox ("保存成功!") '保存成功
Text1.Text = ""
RichTextBox1.Text = ""
Text2.Text = "" '此处清空选择图片的框
Else '存在,不能保存,显示错误信息
MsgBox ("文档已经存在,不能保存,请修改!")
End If
rs.Close '关闭结果集
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Form_Load()
Me.Left = 0
Me.Top = 0
fmain.Width = Me.Width 340
fmain.Height = Me.Height 1550
'显示文档的类别
Dim rs As New ADODB.Recordset
Dim sql As String
sql = "select * from class"
rs.Open sql, cn, 1, 1
Do While Not rs.EOF '类别不空,则添加进去,对应类别的number为索引
Combo1.AddItem rs("class")
rs.MoveNext
Loop
If rs.RecordCount <> 0 Then '只有查询结果集不为空时,才能设定显示第一项,利用纪录总数不为0判定
Combo1.ListIndex = 0 '不能用not rs.eof判定,因为现在cursor已经到了最后
End If
rs.Close
End Sub
当然,在上面这段代码中,还用到了另一个表(表名为class),字段如下:
字段名 类型 意义
class 文本 文档类别的名称
cl_number 数字 类别的编号
上面的代码可以较好的保存我们的文档和图片,我们还需要显示我们的图片和文档,现在我们还要显示我们的图片,我做了一个显示窗口(fshow),现在我假设数据库中有 一条记录,subject为"ipx协议简介",里面有一个图片(ipx体系结构),窗口代码如下:
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




