求救:关于image的问题
我现在根据数据库中数据的量来动态创建Image 。(我用的是VBA)
现在有100条数据,在一个大的Image产生了100个小的Image(大小10X10)然后根据数据库中的数据列(R列,G列,B列)来根据image.backcolor=RGB( rst1.Fields("RGB_R").Value, rst1.Fields("RGB_G").Value, rst1.Fields("RGB_B").Value))给他们染色
现在我要求任意点一个Image,就要在text中显示出他的详细信息(编号等)。
现在不知道该怎么做。
100个Image分10行10列排列。(以后可能要变成1000个)
求救!!!!!!!!!!。解决另外再送50分
代码:
Dim cnn1 As ADODB.Connection
Dim rst1 As ADODB.Recordset
Dim mdbName As String
Dim Sqlstr1 As String
Dim ima(0 To 5, 0 To 33) As Control
Private Sub UserForm_Activate()
'连接数据库 这里用的是Acess数据库
Set cnn1 = New ADODB.Connection
mdbName = "d:\coreldraw vba\CP_XY.mdb"
cnn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + mdbName
cnn1.Open
Dim c, d As Integer
c = 0
d = 991
Sqlstr1 = "select * from colordb_xy where seq > " + CStr(c) + "and seq < " + CStr(d) + " order by seq"
Set rst1 = New ADODB.Recordset
rst1.Open (Sqlstr1), cnn1, adOpenStatic, adLockOptimistic
rst1.MoveFirst
Dim i, j, k As Integer
For k = 0 To 4
For j = 0 To 32
For i = 0 To 5
Set ima(i, j) = Me.Controls.Add("Forms.Image.1", "image1", Visible)
On Error Resume Next
If Not rst1.EOF Then
ima(i, j).Parent = Im1 'im1为Image
' ima(i, j).Click = imageclick '这样处理不行
ima(i, j).Height = 8
ima(i, j).Width = 8
ima(i, j).Left = j * 8
ima(i, j).Top = i * 8 + k * 48
ima(i, j).Enabled = True
ima(i, j).BackColor = RGB(rst1.Fields("RGB_R").Value, rst1.Fields("RGB_G").Value, rst1.Fields("RGB_B").Value)
' ima(i, j).hint='111'
rst1.MoveNext
End If
Next i
Next j
Next k、
end sub
本人刚接触VBA,不会的太多,还有最好当我的鼠标放在任意一个Image上时,出现提示他对应的数据库中的个别信息。
在VBA中用DataGrid想显示数据库中的数据,但是不知道该怎么连数据库。