设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 760|回复: 2
打印 上一主题 下一主题

[Access本身] 帮忙看看我的程序写的是否正确

[复制链接]
跳转到指定楼层
1#
发表于 2009-6-24 21:55:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我写的一个程序,主要是将一个dat文件中的数据读入并存到access数据库中,请哪位帮忙看看有什么问题,谢谢!
Private Sub Form_Load()
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim st As String
Dim b(22) as string
Set CN =new ADODB.Connection
‘建立连接对象
Set Rs= New ADODB.Recordset
‘定义一个记录集
CN.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" C:\Documents and Settings\xuanfeng\桌面\ qixiang.mdb ")
打开数据库
Rs.openqixiang,CN,adopenkeyset,adlockoptimistic,adcmdtable
‘打开记录集
Open " C:\Documents and Settings\xuanfeng\桌面\直接收集\CR1000_TenMin.dat" For Input As #1

‘打开数据文件
Do While Not EOF(1)
Line Input #1,st
b=split(st,",")
Rs.AddNew
Rs.Fields(TIMESTAMP)=b(0) ‘年份时间
Rs.Fields( RECORD)= b(1) ‘记录
Rs.Fields (batt_volt_Min)= b(2)‘数据
Rs.Fields (PTemp)=b(3)
Rs.Fields (Ta_Avg)=b(4)
Rs.Fields (RH_Avg)=b(5)
Rs.Fields (Pvapor_Avg)=b(6)
Rs.Fields (WS)=b(7)
Rs.Fields (WD)=b(8)
Rs.Fields (WD_std)=b(9)
Rs.Fields (Rain_Tot)=b(10)
Rs.Fields (T_109_Avg)=b(11)
Rs.Fields (Rs_Avg)=b(12)
Rs.Fields (LWS_Avg)=b(13)
Rs.Fields (LWS_RH)=b(14)
Rs.Fields (VWC)=b(15)
Rs.Fields (CO2_Avg)=b(16)
Rs.Fields (DirRad_Avg)=b(17)
Rs.Fields (Sunduration_Tot)=b(18)
Rs.Fields (Evap_Tot)=b(19)
Rs.Fields (Watlev)=b(20)
Rs.Fields (“TS”)=b(21)
Rs.Fields (“RN”)=b(22)
Rs.Update
Close #1
loop
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-6-24 23:43:59 | 只看该作者
本帖最后由 红尘如烟 于 2009-6-24 23:51 编辑

怎么全是语法错误?
不当使用引号,在代码中使用字符串要用英文双引号(")括起来,你却用的中文全角引号
注释要以英文单引号(')开始,你却用的是中文单引号
调用方法或函数时如果没有使用返回值则不能对参数加括号,你却在调用Connection对象的Open方法时使用了括号

Private Sub Form_Load()
    Dim CN As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim st As String
    Dim b(22) As String
    Set CN = New ADODB.Connection
    '建立连接对象
    Set Rs = New ADODB.Recordset
    '定义一个记录集
    CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""C:\Documents and Settings\xuanfeng\桌面\ qixiang.mdb"""
    '打开数据库
    With Rs
        .Open "qixiang", CN, adOpenKeyset, adLockOptimistic, adCmdTable
        '打开记录集
        Open "C:\Documents and Settings\xuanfeng\桌面\直接收集\CR1000_TenMin.dat" For Input As #1
        '打开数据文件
        Do While Not EOF(1)
            Line Input #1, st
            b = Split(st, ",")
            .AddNew
            .Fields("TIMESTAMP") = b(0)    '年份时间
            .Fields("RECORD") = b(1)    '记录
            .Fields("batt_volt_Min") = b(2)    '数据
            .Fields("PTemp") = b(3)
            .Fields("Ta_Avg") = b(4)
            .Fields("RH_Avg") = b(5)
            .Fields("Pvapor_Avg") = b(6)
            .Fields("WS") = b(7)
            .Fields("WD") = b(8)
            .Fields("WD_std") = b(9)
            .Fields("Rain_Tot") = b(10)
            .Fields("T_109_Avg") = b(11)
            .Fields("Rs_Avg") = b(12)
            .Fields("LWS_Avg") = b(13)
            .Fields("LWS_RH") = b(14)
            .Fields("VWC") = b(15)
            .Fields("CO2_Avg") = b(16)
            .Fields("DirRad_Avg") = b(17)
            .Fields("Sunduration_Tot") = b(18)
            .Fields("Evap_Tot") = b(19)
            .Fields("Watlev") = b(20)
            .Fields("TS") = b(21)
            .Fields("RN") = b(22)
            .Update
            Close #1
        Loop
    End With
End Sub
3#
发表于 2009-6-25 08:58:53 | 只看该作者
怎么把close写在do循环里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-17 14:33 , Processed in 0.085738 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表