access数据库数据按时间间隔筛选问题,求解决办法 ACCESS数据库字段   “温度”是每隔3秒钟存一个数据,查询的只要按照时间间隔选择其中的一部分即可,即 3秒、30秒、1分钟 等几个时间间隔把数据筛选出来,请问怎么处理? sql 语句? 后面必须加 order by ID

解决方案 »

  1.   

    你可用VB通过ADO数据控件全部检索出数据及ID,用VB按时间间隔将它们赋值给2维数组,类似SQL查询句如下:
    SQL = "Select Id,shuju1,shuju2,shuju3 from tabelName order by ID"
    然后用VB对2维数组按时间间隔要求进行打印。
    以下是我用VB按时间间隔将它们赋值给2维数组和打印的代码,其中一些变量需在窗体代码起始处声明,供参考:Public Function prnt(X As Variant, Y As Variant, fnt As Variant, txt0 As Variant)‘打印函数
        Printer.CurrentX = X
        Printer.CurrentY = Y
        Printer.FontSize = fnt
        Printer.Print txt0
    End FunctionPrivate Sub cmdPrint_Click()
        zsl1 = Adodc1.Recordset.RecordCount
        Adodc1.Recordset.MoveFirst
           For i = 0 To zsl1 - 1
            If Int(i / 30) - i / 30 = 0 Then
                prnt_bm(i / 30, 0) = Adodc1.Recordset(0)
                'prnt_bm(i / 2, 1) = Adodc1.Recordset(1)
                prnt_bm(i / 30, 2) = Int(Adodc1.Recordset(2) * 10 + 0.501) / 10
                prnt_bm(i / 30, 3) = Int(Adodc1.Recordset(3) * 10 + 0.501) / 10
                prnt_bm(i / 30, 4) = Int(Adodc1.Recordset(4) * 10 + 0.501) / 10
                prnt_bm(i / 30, 5) = Int(Adodc1.Recordset(5) * 10 + 0.501) / 10
                prnt_bm(i / 30, 6) = Int(Adodc1.Recordset(6) * 10 + 0.501) / 10
                prnt_bm(i / 30, 7) = Int(Adodc1.Recordset(7) * 10 + 0.501) / 10
            End If
            Adodc1.Recordset.MoveNext
        Next i
        zsl11 = Int(zsl1 / 30) + 1
      
        fnt = 9
    If zsl11 < 60 Then
        Y = 450: X = 3500
        txt = "执行工艺号日期  " & gyhDate
        dd = prnt(X, Y, fnt, txt)
        Y = 750:
        X = 500
        txt = "记录号"
        dd = prnt(X, Y, fnt, txt)
        X = 1400
        txt = "温度1"
        dd = prnt(X, Y, fnt, txt)
        X = 2000
        txt = "温度2"
        dd = prnt(X, Y, fnt, txt)
        X = 2600
        txt = "温度3"
        dd = prnt(X, Y, fnt, txt)
        X = 3200
        txt = "板层"
        dd = prnt(X, Y, fnt, txt)
        X = 3800
        txt = "冷阱"
        dd = prnt(X, Y, fnt, txt)
        X = 4400
        txt = "真空"
        dd = prnt(X, Y, fnt, txt)
    For j = 0 To zsl11 - 1
        Y = 1000 + j * 250
        X = 200
        txt = prnt_bm(j, 0)
        dd = prnt(X, Y, fnt, txt)
        X = 1500
        txt = prnt_bm(j, 2)
        dd = prnt(X, Y, fnt, txt)
        X = 2100
        txt = prnt_bm(j, 3)
        dd = prnt(X, Y, fnt, txt)
        X = 2700
        txt = prnt_bm(j, 4)
        dd = prnt(X, Y, fnt, txt)
        X = 3300
        txt = prnt_bm(j, 5)
        dd = prnt(X, Y, fnt, txt)
        X = 3900
        txt = prnt_bm(j, 6)
        dd = prnt(X, Y, fnt, txt)
        X = 4500
        txt = prnt_bm(j, 7)
        dd = prnt(X, Y, fnt, txt)
    Next j
    ElseIf zsl11 >= 60 And zsl11 < 120 Then
        Y = 450: X = 3500
        txt = "执行工艺号日期  " & gyhDate
        dd = prnt(X, Y, fnt, txt)
        Y = 750:
        X = 500
        txt = "记录号"
        dd = prnt(X, Y, fnt, txt)
        X = 1400
        txt = "温度1"
        dd = prnt(X, Y, fnt, txt)
        X = 2000
        txt = "温度2"
        dd = prnt(X, Y, fnt, txt)
        X = 2600
        txt = "温度3"
        dd = prnt(X, Y, fnt, txt)
        X = 3200
        txt = "板层"
        dd = prnt(X, Y, fnt, txt)
        X = 3800
        txt = "冷阱"
        dd = prnt(X, Y, fnt, txt)
        X = 4400
        txt = "真空"
        dd = prnt(X, Y, fnt, txt)
        X = 6500
        txt = "记录号"
        dd = prnt(X, Y, fnt, txt)
        X = 7400
        txt = "温度1"
        dd = prnt(X, Y, fnt, txt)
        X = 8000
        txt = "温度2"
        dd = prnt(X, Y, fnt, txt)
        X = 8600
        txt = "温度3"
        dd = prnt(X, Y, fnt, txt)
        X = 9200
        txt = "板层"
        dd = prnt(X, Y, fnt, txt)
        X = 9800
        txt = "冷阱"
        dd = prnt(X, Y, fnt, txt)
        X = 10400
        txt = "真空"
        dd = prnt(X, Y, fnt, txt)
    For j = 0 To 59
        Y = 1000 + j * 250
        X = 200
        txt = prnt_bm(j, 0)
        dd = prnt(X, Y, fnt, txt)
        X = 1500
        txt = prnt_bm(j, 2)
        dd = prnt(X, Y, fnt, txt)
        X = 2100
        txt = prnt_bm(j, 3)
        dd = prnt(X, Y, fnt, txt)
        X = 2700
        txt = prnt_bm(j, 4)
        dd = prnt(X, Y, fnt, txt)
        X = 3300
        txt = prnt_bm(j, 5)
        dd = prnt(X, Y, fnt, txt)
        X = 3900
        txt = prnt_bm(j, 6)
        dd = prnt(X, Y, fnt, txt)
        X = 4500
        txt = prnt_bm(j, 7)
        dd = prnt(X, Y, fnt, txt)
    Next j
    For j = 60 To zsl11 - 1
        Y = 1000 + (j - 60) * 250
        X = 6200
        txt = prnt_bm(j, 0)
        dd = prnt(X, Y, fnt, txt)
        X = 7500
        txt = prnt_bm(j, 2)
        dd = prnt(X, Y, fnt, txt)
        X = 8100
        txt = prnt_bm(j, 3)
        dd = prnt(X, Y, fnt, txt)
        X = 8700
        txt = prnt_bm(j, 4)
        dd = prnt(X, Y, fnt, txt)
        X = 9300
        txt = prnt_bm(j, 5)
        dd = prnt(X, Y, fnt, txt)
        X = 9900
        txt = prnt_bm(j, 6)
        dd = prnt(X, Y, fnt, txt)
        X = 10500
        txt = prnt_bm(j, 7)
        dd = prnt(X, Y, fnt, txt)
    Next j
    ElseIf zsl11 >= 120 Then 'And zsl1 < 360
        Y = 450: X = 3500
        txt = "执行工艺号日期  " & gyhDate
        dd = prnt(X, Y, fnt, txt)
        Y = 750:
        X = 500
        txt = "记录号"
        dd = prnt(X, Y, fnt, txt)
        X = 1400
        txt = "温度1"
        dd = prnt(X, Y, fnt, txt)
        X = 2000
        txt = "温度2"
        dd = prnt(X, Y, fnt, txt)
        X = 2600
        txt = "温度3"
        dd = prnt(X, Y, fnt, txt)
        X = 3200
        txt = "板层"
        dd = prnt(X, Y, fnt, txt)
        X = 3800
        txt = "冷阱"
        dd = prnt(X, Y, fnt, txt)
        X = 4400
        txt = "真空"
        dd = prnt(X, Y, fnt, txt)
        X = 6500
        txt = "记录号"
        dd = prnt(X, Y, fnt, txt)
        X = 7400
        txt = "温度1"
        dd = prnt(X, Y, fnt, txt)
        X = 8000
        txt = "温度2"
        dd = prnt(X, Y, fnt, txt)
        X = 8600
        txt = "温度3"
        dd = prnt(X, Y, fnt, txt)
        X = 9200
        txt = "板层"
        dd = prnt(X, Y, fnt, txt)
        X = 9800
        txt = "冷阱"
        dd = prnt(X, Y, fnt, txt)
        X = 10400
        txt = "真空"
        dd = prnt(X, Y, fnt, txt)
    For j = 0 To 59
        Y = 1000 + j * 250
        X = 200
        txt = prnt_bm(j, 0)
        dd = prnt(X, Y, fnt, txt)
        X = 1500
        txt = prnt_bm(j, 2)
        dd = prnt(X, Y, fnt, txt)
        X = 2100
        txt = prnt_bm(j, 3)
        dd = prnt(X, Y, fnt, txt)
        X = 2700
        txt = prnt_bm(j, 4)
        dd = prnt(X, Y, fnt, txt)
        X = 3300
        txt = prnt_bm(j, 5)
        dd = prnt(X, Y, fnt, txt)
        X = 3900
        txt = prnt_bm(j, 6)
        dd = prnt(X, Y, fnt, txt)
        X = 4500
        txt = prnt_bm(j, 7)
        dd = prnt(X, Y, fnt, txt)
    Next j
    For j = 60 To 119 'Int((zsl - 1) / 2)
        Y = 1000 + (j - 60) * 250
        X = 6200
        txt = prnt_bm(j, 0)
        dd = prnt(X, Y, fnt, txt)
        X = 7500
        txt = prnt_bm(j, 2)
        dd = prnt(X, Y, fnt, txt)
        X = 8100
        txt = prnt_bm(j, 3)
        dd = prnt(X, Y, fnt, txt)
        X = 8700
        txt = prnt_bm(j, 4)
        dd = prnt(X, Y, fnt, txt)
        X = 9300
        txt = prnt_bm(j, 5)
        dd = prnt(X, Y, fnt, txt)
        X = 9900
        txt = prnt_bm(j, 6)
        dd = prnt(X, Y, fnt, txt)
        X = 10500
        txt = prnt_bm(j, 7)
        dd = prnt(X, Y, fnt, txt)
    Next j
    Printer.NewPage
        Y = 450: X = 3500
        txt = "执行工艺号日期  " & gyhDate
        dd = prnt(X, Y, fnt, txt)
        Y = 750:
        X = 500
        txt = "记录号"
        dd = prnt(X, Y, fnt, txt)
        X = 1400
        txt = "温度1"
        dd = prnt(X, Y, fnt, txt)
        X = 2000
        txt = "温度2"
        dd = prnt(X, Y, fnt, txt)
        X = 2600
        txt = "温度3"
        dd = prnt(X, Y, fnt, txt)
        X = 3200
        txt = "板层"
        dd = prnt(X, Y, fnt, txt)
        X = 3800
        txt = "冷阱"
        dd = prnt(X, Y, fnt, txt)
        X = 4400
        txt = "真空"
        dd = prnt(X, Y, fnt, txt)
    For j = 120 To zsl11 - 1
        Y = 1000 + (j - 120) * 250
        X = 200
        txt = prnt_bm(j, 0)
        dd = prnt(X, Y, fnt, txt)
        X = 1500
        txt = prnt_bm(j, 2)
        dd = prnt(X, Y, fnt, txt)
        X = 2100
        txt = prnt_bm(j, 3)
        dd = prnt(X, Y, fnt, txt)
        X = 2700
        txt = prnt_bm(j, 4)
        dd = prnt(X, Y, fnt, txt)
        X = 3300
        txt = prnt_bm(j, 5)
        dd = prnt(X, Y, fnt, txt)
        X = 3900
        txt = prnt_bm(j, 6)
        dd = prnt(X, Y, fnt, txt)
        X = 4500
        txt = prnt_bm(j, 7)
        dd = prnt(X, Y, fnt, txt)
    Next j
    End If
    Printer.EndDoc
    ' 打印完成。
    'CmdPrnt1.Enabled = False
    'On Error GoTo ErrorHandler  ' 设置错误处理程序。
    'rompt$ = "正送往打印机。"
    Cls
    End Sub
      

  2.   

    以下是经VB6调试通过的代码。SQL语句支持(Id mod 10)=0的写法:Private Sub Command1_Click()
        Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\hxrkgl1.mdb;Persist Security Info=False"
        Adodc1.RecordSource = "select * from tabelName where (Id mod 10)=0 order by Id"
        Adodc1.Refresh
    End SubPrivate Sub Form_Load()
        Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\hxrkgl1.mdb;Persist Security Info=False"
        Adodc1.RecordSource = "select * from tabelName order by Id"
        Adodc1.Refresh
    End Sub