如何修改此试用期程序。

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
...全文
323 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcg 2009-08-24
  • 打赏
  • 举报
回复
感谢各位,已经解决了
gba8jing 2009-08-23
  • 打赏
  • 举报
回复
这是 VB6 或前版本 的代码,偶也遗忘的差不多了,帮顶
贝隆 2009-08-23
  • 打赏
  • 举报
回复
关注,帮顶
sonoffreedom 2009-08-23
  • 打赏
  • 举报
回复
加我QQ 157864607,
zcg 2009-08-23
  • 打赏
  • 举报
回复
想在vb2005中实现上述功能,有没有更好的办法,请指教,最好能有代码多谢!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧