注册 登录
编程论坛 VB6论坛

求助,在做毕设,这部分不会,求程序。

dk7919 发布于 2016-05-17 10:31, 4572 次点击
在Text1中输入一个数值a,单击按钮,在Text2输出一个值。这个值是从Access数据表中查的,是第一列中数值大于a的第一个数。
比如:a是6。数据表这一列有2、5、8、10。输出应为8.
11 回复
#2
风吹过b2016-05-17 11:46
select top 1 * from tt where da > 6 ORDER BY da ASC;         
我测试的SQL命令如上,返回了一行记录,结果是 8

top 1,返回第一行结果,配合 ORDER BY da ASC 排序进行,就只会返回正好大于指定值,但又是最小的那个值。
如果你无所谓严格只需要一行结果,这个 top 1 不要也行。

SQL命令在 :ASSECC ,MDB 测试通过。
我测试的表(tt)的结构是:
ID(自动编号),BY(long),

#3
hjxlj2016-05-17 11:55
这样的功能就用数据库,实在浪费了数据库的功能。这种功能,楼主还不如用文件来代替数据库。
#4
xiangyue05102016-05-17 12:58
毕设……,这个课程设计都简单了一点吧
#5
dk79192016-05-17 14:56
回复 楼主 dk7919
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录



这是界面跟数据库,要求text1输入为6(直径),则text2输出8(直径),text3输出16(宽度).


这是自己练习的小程序。真正需要的程序要查别的表。
#6
dk79192016-05-17 14:57
回复 3楼 hjxlj
具体问题看5楼。
#7
dk79192016-05-17 15:00
回复 2楼 风吹过b
看不懂,能具体点吗?初学VB,小白一个。最好有连接数据库与数据表的代码。
#8
风吹过b2016-05-17 15:58
真是小白啊。
很讨厌这种伸手党,算你运气好,今天心情好。

-----------Form 代码------------------
程序代码:
Option Explicit

Private Sub Command1_Click()

Dim i As Long
Dim rs As New ADODB.Recordset
Dim sql As String

i = Val(Text1.Text)
sql = "select top 1 * from zcsjb where 直径 > " & i & " ORDER BY 直径 ASC;"         '生成 SQL 命令
rs.Open sql, Conn, adModeRead               '以只读打开

If Not rs.EOF And Not rs.BOF Then           '查询有结果
    Text2.Text = rs.Fields("直径")          '输出结果
    Text3.Text = rs.Fields("宽度")
Else
    Text2.Text = "无结果"                   '输出无结果
    Text3.Text = "无结果"
End If

rs.Close                                    '关闭表
Set rs = Nothing                            '释放内存

End Sub

Private Sub Form_Load()

'以下四行,我整个代码里没使用到,但你应该要使用到
Path = App.Path
If Right(Path, 1) <> "\" Then
    Path = Path & "\"
End If

'打开数据连接
Call opendb

End Sub

Private Sub Form_Unload(Cancel As Integer)

'关闭数据连接
Call closedb

End Sub



-----------Bas 代码--------------------

程序代码:
Option Explicit

Public Conn As New ADODB.Connection      '数据库连接
Public Path As String

Public Sub opendb()
    '连接数据库
    If Conn.State = 1 Then          '如果数据连接未关闭
        Conn.Close                  '关闭它
        DoEvents                    '确保已完成关闭操作
    End If
   
    Dim constr As String
    Dim s As String
   
    s = "D:\Documents\Documents\db2.mdb"        '数据库路径
   
    '因为测试时工程未保存,再加之数据库是临时,用完就删,所以写的绝对路径,你代码里应该像下面这样写相对位置。下面这行数据库在工程一起
    's = Path & "db2.mdb"
   
    If Dir(s) <> "" Then                        '数据库存在
        constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & s & ";Persist Security Info=False"
        Conn.Open constr
    Else                                        '否则报错退出
        MsgBox "数据库不存在,程序无法运行!", vbCritical, "应用程序致命错误"
        End
    End If
   
End Sub

Public Sub closedb()

'关闭数据库连接
If Conn.State = 1 Then
    Conn.Close                      '关闭数据连接
    Set Conn = Nothing              '释放内存
End If

End Sub


看不懂的部分,自己百度。
#9
风吹过b2016-05-17 16:01
以下是引用xiangyue0510在2016-5-17 12:58:15的发言:

毕设……,这个课程设计都简单了一点吧


这个毕设,的确太简单了。不过,如果就靠平时上课的话,做出这个毕设,那就算学习认真的人了。
以前看过二个毕设,比较稍复杂一点,也是一个库,一个固定条件的查询,只是输出内容稍多一点而以。
#10
xiangyue05102016-05-18 11:07
以下是引用风吹过b在2016-5-17 16:01:26的发言:
这个毕设,的确太简单了。不过,如果就靠平时上课的话,做出这个毕设,那就算学习认真的人了。
以前看过二个毕设,比较稍复杂一点,也是一个库,一个固定条件的查询,只是输出内容稍多一点而以。

确实是,入门的东西,就是上两三堂课认真都应该会写。
我之前做过一个计算器的东西,这个做一个课程设计还不错,虽然简单但是其中的逻辑关系倒是不简单,很锻炼人的
毕设,我觉得至少要做一个较为实用的、可应用的程序
#11
pengzhanggui2016-07-06 13:57
這個很基礎啊,自己稍微動下腦子就會摸索出來了
#12
pengzhanggui2016-07-08 13:35
回复 8楼 风吹过b
版主不能這麼縱容學生吖
1