![]() |
#2
multiple19022008-07-23 22:02
首先,你写的是vbs代码,自然要符合vbs语言的规则。你之前写的是VB代码。
我也不想多写什么,可以给你看VBS读取数据库的示例,可以保存成vbs文件运行。 这样的代码是可以移植到网页里的(除了WScript.ScriptFullName这里,自己看看该改成什么。),至于输出的部分,使用 document对象的write方法可以向页面上的执行处写入HTML内容。报告完毕。 ![]() ' by multiple1902 ' written by 2008.1.9 Option Explicit '主程序 Dim Conn '数据库连接 Dim W,H,A '体重,身高,年龄 Dim EnergyInNeed '每日基础能量 '基本输入 'InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context]) W=InputBox("请输入您的体重,单位是千克","Input W","60") H=InputBox("请输入您的身高,单位是厘米","Input H","160") A=InputBox("请输入您的年龄,单位是年","Input A","20") EnergyInNeed=jichunengliang(W,H,A) 'MsgBox(prompt[, buttons][, title][, helpfile, context]) Call Msgbox("根据计算,你每天需要消耗约" & EnergyInNeed & "大卡的能量,点击确定开始计算你每天消耗的葡萄糖能转化的能量",,"消耗能量计算结果") If ConnectDatabase Then 'If UCase(InputBox("是否添加食物?","Y/N?","N"))="Y" Then ' Call AddFood 'Else Dim Rs Set Rs=Conn.Execute("Select * From Foods") Dim EnergySum,Energy While Not Rs.EOF Energy=CSng(InputBox("请输入你每天吃" & Rs("F_Name") & "的量,单位:" & Rs("F_Unit"),Rs("F_Name") & ":每" & Rs("F_UnitName") & "提供" & Rs("F_Energy") & "大卡的能量","0"))*Rs("F_Energy") EnergySum=EnergySum+Energy Rs.MoveNext Wend Msgbox "你每天通过葡萄糖摄入" & FormatNumber(EnergySum,2) & "大卡的能量,刚才计算出的需求量是" & FormatNumber(EnergyInNeed,2) & "大卡" 'End If Else Call Msgbox("数据库连接出错,无法进行营养元素计算",,"数据库连接出错") End If '主程序结束 Sub AddFood() Dim FoodName,FoodUnit,FoodUnitName,FoodEnergy Do FoodName="" Do FoodName=InputBox("请输入食品的名称","FoodName") Loop Until FoodName<>"" FoodUnit=0 Do FoodUnit=InputBox("请输入食品单位的质量/g","FoodUnit") Loop Until IsNumeric(FoodUnit) FoodUnitName="" Do FoodUnitName=InputBox("请输入食品的单位名称","FoodUnitName","100g") Loop Until FoodUnitName<>"" FoodEnergy=100 Do FoodEnergy=InputBox("请输入食品单位的能量/大卡","FoodEnergy") Loop Until IsNumeric(FoodEnergy) If Not InputBox("确定添加吗?不添加请输入N" & vbCrLf & FoodName & "," & FoodUnit & "," & FoodUnitName & "," & FoodEnergy & "g","确定添加?","Y")="N" Then Conn.Execute "Insert Into Foods(F_Name,F_Unit,F_UnitName,F_Energy,F_Type) Values('" & Replace(FoodName,"'","''") & "'," & Replace(FoodUnit,"'","''") & ",'" & Replace(FoodUnitName,"'","''") & "'," & Replace(FoodEnergy,"'","''") & ",1)" End If Loop Until UCase(InputBox("继续添加吗?","Y,N?","Y"))="N" End Sub Function ConnectDatabase '连接数据库 On Error Resume Next Dim Connstr,SqlDataBase,SqlProvider SqlDataBase = WScript.ScriptFullName SqlDataBase = Left(SqlDataBase,InstrRev(SqlDataBase,"\")) SqlDataBase = SqlDataBase & "db1.mdb" 'Msgbox SqlDataBase SqlProvider = "Microsoft.Jet.OLEDB.4.0" '驱动程序[ Microsoft.Jet.OLEDB.4.0 Microsoft.ACE.OLEDB.12.0 ] Connstr="Provider="&SqlProvider&";Data Source=" & SqlDataBase Set Conn=CreateObject("ADODB.Connection") ConnectDatabase=True If Not Err Then Conn.Open ConnStr If Err Then Msgbox "数据库连接出错,请检查连接字串。" & vbCrLf &Err.Source&" ("&Err.Number&")" Set Conn = Nothing Err.Clear ConnectDatabase=False End If Else Err.Clear ConnectDatabase=False End If End Function Function jichunengliang(W,H,A) '每日所需基础能量,单位:大卡 '参数:W:体重/kg,H:身高/cm,A:年龄/岁 jichunengliang=655.096+9.563*W+1.85*H-4.676*A End Function Function mol2kj(m) '计算葡萄糖提供的能量 '参数:m,葡萄糖的物质的量 '函数值:葡萄糖提供的能量,单位:kJ mol2kj=m*1161 End Function Function K2J(K) K2J=4.18*K End Function Function J2K(J) J2K=J/4.18 End Function 顺便发一下数据库。刚才在网页里测试成功了,你先把代码抄去,仔细研究,还不会再提问,说清楚哪里不会。 我这个代码不必深究,更不要研究里面非编程的内容。 [[it] 本帖最后由 multiple1902 于 2008-7-23 22:05 编辑 [/it]] |
multiple1902版主能不能告诉我怎么用 vbs 连接、读取 Access 数据库并在浏览器中显示出来。请明示,本人比较笨,希望代码详细点...
另外,access数据库 位置在:H:\SYSchange\DeskTop\最新测试数据\AB.mdb
可以吗?