如何修改此试用期程序。
zcg 2009-08-23 10:42:27 我参照了http://www.xker.com/page/e2007/0116/11174.html,所述的方法改编,但有很多地方报错
请大家帮忙指导一下,应如何修改。我用的是vb2005
Sub main()
On Error GoTo error
'系统检测是否有date.mdb文件,如果没有,则是系统第一次启动,则建立之
If Dir("c:\windows\system\date.mdb") = "" Then
'注意在开始,您要确定您的工程引用了Microsoft dao 2.5/3.5 compatibility library 在"工程"==>"引用"中.
此处我引用的是Microsoft dao 3.6 object library
Dim WS As dao.Workspace
Dim DB As dao.Database
Dim TD As dao.Tabledef
Dim FLD As dao.Field
Dim IDX As dao.Index
Dim rd As dao.Recordset
以下两句报错,我做了如下修改不知对不
WS = [color=#3366FF]DBEngine.Workspaces(0) 错误提示:“未声明名称“DBEngine”。”
DB = WS.CreateDatabase("c:\windows\system\date.mdb", dbLangGeneral) 错误提示:“未声明名称“dbLangGeneral”。”
修改后
dim WSS as dao.dbengine
dim dblanggeneral as dao.Workspace
ws=wss.workspaces(0)
db=ws.CreateDatabase("c:\windows\system\date.mdb", dbLangGeneral)
[/color]
DB.Connect = ";pwd=andy"
Set TD = DB.CreateTableDef("date")
TD.Attributes = 0
TD.Connect = ""
TD.SourceTableName = ""
TD.ValidationRule = ""
TD.ValidationText = ""
' Field first_time
Set FLD = TD.CreateField("first_time", 8, 8)
FLD.Attributes = 1
FLD.DefaultValue = ""
FLD.OrdinalPosition = 0
FLD.Required = False
FLD.ValidationRule = ""
FLD.ValidationText = ""
TD.Fields.Append FLD
' Field last_time
Set FLD = TD.CreateField("last_time", 8, 8)
FLD.Attributes = 1
FLD.DefaultValue = ""
FLD.OrdinalPosition = 1
FLD.Required = False
FLD.ValidationRule = ""
FLD.ValidationText = ""
TD.Fields.Append FLD
' Field times
Set FLD = TD.CreateField("times", 3, 2)
FLD.Attributes = 1
FLD.DefaultValue = ""
FLD.OrdinalPosition = 2
FLD.Required = False
FLD.ValidationRule = ""
FLD.ValidationText = ""
TD.Fields.Append FLD
DB.TableDefs.Append TD
DB.Close
DB = WS.OpenDatabase("c:\windows\system\date.mdb")
rd = DB.OpenRecordset("date")
With rd
以下内容报错:
.AddNew
.Fields("first_time") = [color=#3366FF]Date 错误提示““Date”是一个类型,不能用作表达式。”
.Fields("last_time") = Date 错误提示““Date”是一个类型,不能用作表达式。”
.Fields("times") = 1
.Update [/color]
End With
DB.Close
MsgBox "这是您第一次启动本系统!您的试用期为30天,今天是第一天.谢谢使用!", 48, "天华电脑艺术创意工作室"
'效果如图1 (见附件1)
mainForm.Show '启动您的主窗体
Else '系统有date.mdb文件,则不是第一次运行,就不用建立数据库文件了.
Dim WS2 As Workspaces
Dim DB2 As Database
Dim rd2 As Recordset
以下内容报错:
WS2 = Workspaces(0) 错误提示:““Workspaces”是一个类型,不能用作表达式。”
DB2 = WS2.OpenDatabase("c:\windows\system\date.mdb")错误提示:““OpenDatabase”不是“DAO.Workspaces”的成员。”
rd2 = DB2.OpenRecordset("date")
'开始检测用户是否修改了系统日期
rd2.MoveFirst
以下内容报错:
If rd2.Fields("last_time") >[color=#3366FF] Date Then [/color]
错误提示:“Date”是一个类型,不能用作表达式。
MsgBox "对不起,您在本软件的试用期内不可以修改系统日期,否则将取消您对不系统的试用权.如果您想继续使用本软件,请您恢复系统日期.谢谢合作!", 48, "天华电脑艺术创意工作室"
End
End If
'开始检测是否超期
以下内容报错:
If [color=#3366FF]Date - rd2.Fields("first_time") >= 30 Then [/color]'设定试用期为30天
’错误提示:“Date”是一个类型,不能用作表达式。
MsgBox "您已经启动本系统" & rd2.Fields("times") & "次了,而且已经到了30天的试用期,如果您想继续使用本软件,请您到本公司注册并购买正版的软件!", 48, "天华电脑艺术创意工作室"
End
Else
'仍在试用期内
num% = rd2.Fields("times")
rd2.Edit
rd2.Fields("last_time") = [color=#3366FF]Date [/color]’错误提示:“Date”是一个类型,不能用作表达式。
rd2.Fields("times") = num + 1
rd2.Update
MsgBox "这是您第" & rd2.Fields("times") & "次使用本系统,您还有" & 30 - (Date - rd2.Fields("first_time")) & "天的试用期,祝您今天工作愉快!", 48, "天华电脑艺术创意工作室"
mainForm.Show '启动您的主窗体
End If
End If
Exit Sub
error:
MsgBox "系统错误!"
End Sub