如何查看不同路径下最先的数据库数据

RCDRCD 2008-03-29 11:19:34
数据库路径:C:\PROG\2008-3.MDB (当月数据)
C:\PROG\BACKUP\2008-2.MDB (以前数据)
C:\PROG\BACKUP\2008-1.MDB (以前数据)
在FORM1启动时先显示当月数据在DATAGRID上,按COMMAND1(查以前记录)后在DATAGRID上显示以前的记录,能实现这样功能的源代码吗?
我是VB的初学者,VB的高手请提供例子,谢谢!
...全文
170 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
RCDRCD 2008-04-16
  • 打赏
  • 举报
回复
没有加分给CBM666,再次表示歉意!
RCDRCD 2008-04-16
  • 打赏
  • 举报
回复
不好意思!应该加分给CBM666的,现错加给OF123,不知如何改变.
RCDRCD 2008-04-15
  • 打赏
  • 举报
回复
不好意思!来迟了,已收到邮件,很详细,多谢CMB666.
cbm6666 2008-04-13
  • 打赏
  • 举报
回复
已发到你邮箱了, 里面 rssort 这个文件夹的代码就是 找出你最近一个月份并以DtaGrid显示出来.

里面还有好几个 rs ado sql msflexgrid datagrid 的代码, 与几个打印的代码,都是我平时测试与练习用的,

我没时间整理,你自己能从中学到多少算多少吧.


RCDRCD 2008-04-12
  • 打赏
  • 举报
回复
TO:CBM666
我的邮箱是:wingfai_ruandc@126.com
cbm6666 2008-04-11
  • 打赏
  • 举报
回复
'下面代码是遍历 c 盘下面所有的 .mdb , 找出 200开头的.mdb 利用 List1的Sort排序属性(当然要用数组排序也行,多几行代码有点懒), 最下面一笔就是最靠近今天的.mdb, 剩下的你自己玩了.

'添加 Command1 List1 记住 List1的属性 sorted 要设为 True

Option Explicit
Dim objWMIService, objProcess, colProcesslist
Dim i%, j%, aa$, bb$, fname$, DriveNm$(), Filestr$(), Trec&, s

Private Sub Command1_Click()
ReDim Preserve Filestr$(0)
Trec = 0: Filestr(0) = ""
fname = "c:\tmpstr.txt"
List1.Clear
If Dir(fname) <> "" Then Kill fname
Me.Caption = "搜索中,请稍侯......!!"
Call Shell("cmd /c dir c:\*.mdb /s/b >" & fname, vbHide)
Do
DoEvents
If Not Isrunexe("cmd.exe") Then Exit Do
Loop
If FileLen(fname) > 0 Then
List1.Visible = False
Open fname For Input As #1
While Not EOF(1)
Line Input #1, aa
ReDim Preserve Filestr$(Trec)
Filestr(Trec) = aa
If InStr(aa, "200") > 0 Then
bb = Getdate(aa)
If bb <> "" Then List1.AddItem bb & "," & Filestr(Trec)
End If
Trec = Trec + 1
Wend
Close #1
List1.Visible = True
For i = 0 To List1.ListCount - 1
aa = List1.List(i)
s = Split(aa, ",")
Filestr(i) = s(1)
Print Filestr(i)
Next i
End If
Me.Caption = "搜索完成!!"
If Trec = 0 Then MsgBox "未搜索到欲查找的文件": Exit Sub
MsgBox "共搜到 " & CStr(Trec) & " 个数据库" & vbCrLf & Chr(10) & "日期命名的有:" & CStr(List1.ListCount) & " 个文件"
End Sub

Public Function Isrunexe(ExeNm As String) As Boolean
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesslist = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & ExeNm & "'")
Isrunexe = IIf(colProcesslist.Count > 0, True, False)
Set objWMIService = Nothing
Set colProcesslist = Nothing
End Function

Function Getdate(Tstr$) As String
Getdate = ""
j = InStrRev(Tstr, "\")
If j > 0 Then
Tstr = Mid(Tstr, j + 1)
Tstr = Replace(Tstr, "-", "")
j = InStr(Tstr, ".")
If j > 0 Then
Tstr = Mid(Tstr, 1, j - 1)
If Len(Tstr) < 6 Then Tstr = Mid(Tstr, 1, 4) & "0" & Mid(Tstr, 5, 1)
Getdate = Tstr
End If
End If
End Function

of123 2008-04-11
  • 打赏
  • 举报
回复
在窗体上放一个 DataGrid 控件,一个 ADODC 控件,一个 CombBox 控件,一个 Command 控件:
窗体打开时显示当月数据,选择 ComboBox 列表(包括备份数据和当月数据)后,单击按钮显示响应数据。

没有调试。权当提供思路吧。

Private Sub Form_Load()
Dim strFile As String

strFile = Dir("C:\PROG\BACKUP\*.MDB")
Do Until strFile = ""
Combo1.AddItem strFile
Loop
If Combo1.ListCount Then Combo1.ListIndex = 0

strFie = Dir("C:\PROG\*.MDB")
If strFile > "" Then
Combo1.AddItem strFile
Combo1.ItemData(Combo1.NewIndex) = 1
ADODC1.DatabaseName = "C:\PROG\" & strFile
ADODC1.RecordSource = "SELECT * FROM 你的表名称"
Set DataGrid1.DataSource = ADODC1
DataGrid1.Refresh
End If

Command1.Caption = "查看记录(&V)"

End Sub

Private Sub Command1_Click()
Dim strPathFile As String
strPathFile = "C:\PROG\" & IIf(Combo1.ItemData(Combo1.ListIndex), "", "BACKUP\") & Combo1.List(Combo1.ListIndex)
If Dir(strPathFile) > "" Then
ADODC1.DatabaseName = strPathFile
ADODC1.RecordSource = "SELECT * FROM 你的表名称"
Set DataGrid1.DataSource = ADODC1
DataGrid1.Refresh
End If
End Sub
RCDRCD 2008-04-11
  • 打赏
  • 举报
回复
看来分数并不重要,重要的是没有高手肯贴出完整的代码帮助初学的人员,看来现在还是从小学念书起比较好。
cbm6666 2008-04-11
  • 打赏
  • 举报
回复
你留个邮箱给我, 晚上我找一些我写的数据库代码给你.
RCDRCD 2008-04-11
  • 打赏
  • 举报
回复
多谢CBM666指点,今后会不断学习VB,增加自己的知识,但我总有个缺点,看别人的代码才知道怎么写,看书真的不懂。都不知哪本书写的合我学习,我找了很久都没有找到VB与数据库结合的书来。不是单一写数据库的就是写VB的。
cbm6666 2008-04-11
  • 打赏
  • 举报
回复
"它们分别存放在C盘不同的目录下" 要找出最近的这一月份的数据库?.mdb, 难道你不用搜索 ? 用眼睛来找是吗 ?

当然, 如果你是初学者, 上面的话我收回, 但我只想告诉你, .mdb 使用DataGrid来显示数据, 这种代码是非常普遍,可以说到处都是, 你何不花点时间搜索一下呢 ? 你越搜见得越多,学得越快, 进步越快不是吗 ?

晚上回家后再帮你完善DataGrid的显示与打印.

lcsfxs 2008-04-11
  • 打赏
  • 举报
回复
先建个日期型字段表,把2008-1.MDB 以200801开式存入表中,把2008-2.MDB 以200802存入表中,然后调用哪个字段你就打开哪个数据库就行
RCDRCD 2008-04-11
  • 打赏
  • 举报
回复
我会的哪用高手来帮我完成,就是不会才来提问的,其实我对VB及数据库一点都不会,只是看了一些例子才知道一点点皮毛,不用搜索不行吗?都已经知道了数据库存放的位置,难道还要花时间在搜索上?
cbm6666 2008-04-11
  • 打赏
  • 举报
回复
10F 代码已经帮你完成了找出最近日期的那个月份的 mdb 这个动作是比较有点技巧性,我的代码已帮你完成了搜索与排序.

剩下的就是简单的DataGrid调出与显示打印, 这个部份难道你不会, 还要等别人来帮你完成吗?
RCDRCD 2008-04-11
  • 打赏
  • 举报
回复
分数再多都没有用,可能大家对我的提问不了解,造成提出的问题没有人能够详细地提供代码,归根到底都是我的错,没有把提问的内容描述清楚,现将提问内容再一次写出来,看哪位高手能提代码。 要做一个显示数据库及打印出显示数据的例子,这个数据库有按月备份的,分为记录当月数据的数据库和按月备份的数据库,它们分别存放在C盘不同的目录下,如:C:\PROG\OK.MDB (当月数据) ,备份的数据库: C:\PROG\BACKUP\2008-1.MDB ,C:\PROG\BACKUP\2008-2.MDB,C:\PROG\BACKUP\2008-3.MDB
现要求: 在FORM1启动时先显示当月数据在DATAGRID上,按COMMAND1(查以前记录)后在DATAGRID上显示备份的数据库记录,按COMMAND2 打印出显示数据,能实现这样功能的源代码吗?


杨哥儿 2008-04-05
  • 打赏
  • 举报
回复
sub COMMAND1_click()
CommonDialog1.ShowOpen
mymdb=CommonDialog1.FileName
strConn = "Driver={Microsoft Access Driver(*.mdb)};DBQ=" & mymdb & ";"
Set curConnection = New ADODB.Connection
Set rs = New ADODB.Recordset
curConnection.Provider = "Microsoft.Jet.OLEDB.4.0" '3.51"
curConnection.Open strConn
If curConnection.State = adStateOpen Then
strSQL = "select * from mytable"
rs.Open strSQL, curConnection, adOpenStatic, adLockReadOnly
DATAGRID.datesource=rs
end if
end sub
RCDRCD 2008-04-05
  • 打赏
  • 举报
回复
TO:CBM666
路径是一个,是C盘,"最先"是指"最早的",就是当前的数据,是保存日期最近的一个,因为保存数据库命名方式是按月命名,"最先"就是指当月的啦!
补充一点,显示出来后还要有打印预览后打印出来.
cbm6666 2008-04-05
  • 打赏
  • 举报
回复
查看不同路径 ? 总要有个路径吧? 难道你要 c d e f 搜遍硬盘每个盘符 ?

何谓 "最先" ? 2008-1.MDB 是最先的吗? 如果有 2007-1.MDB 那这是不是最先 ?

问问题自己要先表达清楚, 俺懒得猜, 否则早就帮你搞掂了.




RCDRCD 2008-04-05
  • 打赏
  • 举报
回复
看来没有高手能提供代码给我了,大家讲的思路对于初学者来说都不知怎能搞,最好还是有高手能提供源码参考下,对于提供的源码有参考价值的,马上结帖!
Kevin2328 2008-03-30
  • 打赏
  • 举报
回复
如果你的数据库命名方式都是这样的话就可以用一个循环来读取数据

for i=1 to Year(now)-1
strDbName=Year(now) & "-" & i & ".mdb"
检查这个文件名是否存在
如存在就打开数据库并将数据显示到datagrid中

next
加载更多回复(2)

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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