帮小弟看看code应该怎样改????????????????????????????????急!急!急!

actioner 2003-04-02 11:19:56
date1与date2是输入开始到最后的日期型数据;我的库中有date1-date2的所有表数据,而且字段都是相同的。
tt = date2 - date1 + 1 '共计天数
For i = 1 To tt
bdate00 = date1 + 1
BBdate = Format(date1, "yyyyMMdd")
EEdate = Format(bdate00, "yyyyMMdd")
Sarray(i) = "select * from " & BBdate & " union select * from " & EEdate
Ado2.RecordSource = ssql & Sarray(i)
date1 = date1 + 1
Next i
执行结果为date1与date2的两个数据库的联结,而我要的结果是想要date1至date2之间所有的数据库联结??????应该怎么改!!!!?????
...全文
50 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cbr7619 2003-04-02
OH ! MY God!
来一个比较苯的办法:
建立一表,把所有表名都添加进去。
你应该是动态添加表的吧?那你生成YYYYMMDD表是把YYYYMMDD添加到一表中。
哈哈 虽然是苯,但很实用啊。哈哈 (只能打哈哈了:()
Access2000中没有sysobjects表的啊。
回复
actioner 2003-04-02
可上头要我用Access2000,而不能用SQL server?????????????????????????????????????????????????????????????????????????
回复
cbr7619 2003-04-02

http://www.csdn.net/develop/author/netauthor/lihonggen0/
回复
cbr7619 2003-04-02
'from " & BBdate & " ' 日期就是表名?
那就取表名,判断是否在date1至date2之间后,在联合查询。
转自lihonggen0 (李洪根,用.NET,标准答案来了) :
列出SQL SERVER数据库中所有表及字段信息

用SELECT name From sysobjects WHERE xtype = 'u'得到所有表,然后循环打开表,根据Rs_Colums.Fields(I).Name 得到字段名,FieldType(Rs_Colums.Fields(I).Type) 得到字段类型,Rs_Colums.Fields(I).DefinedSize '宽度

由于Rs_Colums.Fields(I).Type返回类型是数字,程序中写了一个FieldType函数转化成中文类型

Private Sub Command1_Click()
Dim Cn As New ADODB.Connection
Dim Rs_Table As New ADODB.Recordset
Dim Rs_Colums As New ADODB.Recordset

With Cn '定义连接
.CursorLocation = adUseClient
.Provider = "sqloledb"
.Properties("Data Source").Value = "LIHG"
.Properties("Initial Catalog").Value = "NorthWind"
.Properties("User ID") = "sa"
.Properties("Password") = "sa"
.Properties("prompt") = adPromptNever
.ConnectionTimeout = 15
.Open

If .State = adStateOpen Then
Rs_Table.CursorLocation = adUseClient '得到所有表名
Rs_Table.Open "SELECT name From sysobjects WHERE xtype = 'u'", Cn, adOpenDynamic, adLockReadOnly
Rs_Table.MoveFirst
Do While Not Rs_Table.EOF
Debug.Print Rs_Table.Fields("name")
Rs_Colums.CursorLocation = adUseClient
Rs_Colums.Open "select top 1 * from [" & Rs_Table.Fields("name") & "]", Cn, adOpenStatic, adLockReadOnly
For I = 0 To Rs_Colums.Fields.Count - 1 ' 循环所有列
Debug.Print Rs_Colums.Fields(I).Name '字段名
Debug.Print FieldType(Rs_Colums.Fields(I).Type) '字段类型
Debug.Print Rs_Colums.Fields(I).DefinedSize '宽度
Next
Rs_Colums.Close
Rs_Table.MoveNext
Loop
Rs_Table.Close
Set Rs_Colums = Nothing
Set Rs_Table = Nothing

Else
MsgBox "数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
End
End If
End With
End Sub

'*********************************************************
'* 名称:FieldType
'* 功能:返回字段类型
'* 用法:FieldType(nType as integer)
'*********************************************************
Function FieldType(nType As Integer) As String
Select Case nType
Case 128
FieldType = "BINARY"
Case 11
FieldType = "BIT"
Case 129
FieldType = "CHAR"
Case 135
FieldType = "DATETIME"
Case 131
FieldType = "DECIMAL"
Case 5
FieldType = "FLOAT"
Case 205
FieldType = "IMAGE"
Case 3
FieldType = "INT"
Case 6
FieldType = "MONEY"
Case 130
FieldType = "NCHAR"
Case 203
FieldType = "NTEXT"
Case 131
FieldType = "NUMERIC"
Case 202
FieldType = "NVARCHAR"
Case 4
FieldType = "REAL"
Case 135
FieldType = "SMALLDATETIME"
Case 2
FieldType = "SMALLMONEY"
Case 6
FieldType = "TEXT"
Case 201
FieldType = "TIMESTAMP"
Case 128
FieldType = "TINYINT"
Case 17
FieldType = "UNIQUEIDENTIFIER"
Case 72
FieldType = "VARBINARY"
Case 204
FieldType = "VARCHAR"
Case 200
FieldType = ""
End Select
End Function


此程序只是一个雏形,可以在此基础上开发成一个工具使用

本程序在:VB 6.0 ,SQL SERVER 2000下运行通过

注程序中须引用ActiveX Data Objects (ADO)


回复
cbr7619 2003-04-02
我的意思是把建立一日期表 把日期作为一字段 日期表中只有日期,没有其他数据的。
回复
actioner 2003-04-02
老兄,我有61个表,就是因为用一个表忙出来Access的记录数不够装,(我打听说Access的一个表只有6万多条记录),所有我才要把每天的记录放在一个表中,有更好的办法没有????本人很急???
回复
youxia001 2003-04-02
对不起,对题目我读不清楚。
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2003-04-02 11:19
社区公告
暂无公告