Hi,
Sorry my friend but am not having enough time to create you the required example but I posted you a module I previously created to display a graph of medical test results using arrays of pictures and labels.
Dim rs As ADODB.Recordset
Dim db As ADODB.Connection
Private Sub Form_Load()
Set db = New Connection
db.Open "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;dsn=LOCAL;uid=;pwd=;"
Set RsRead = New Recordset
End Sub
Private Sub cmdDis_Click()
If Me.Bar().Count > 1 Then
For I = 1 To Me.Bar().UBound
Unload Bar(I)
Unload lbl(I)
Unload lblDat(I)
Unload lblDir(I)
Next
End If
SQL = "select Test,[result date],Result,firstname,sex,age from Results2 where test= '" & Me.MSHFlexGrid1.TextMatrix(Me.MSHFlexGrid1.Row, 1) & "' and patientID = '" & Me.txtPatientID & "' order by [result date] "
RsRead.Open SQL, db, adOpenStatic, adLockOptimistic
Dim X As Double
X = 300
If Not RsRead.EOF Then
Me.txtField(1) = Me.txtPatientID & " # " & RsRead!firstname
Me.txtField(2) = Me.MSHFlexGrid1 & " # " & range(RsRead!Test, RsRead!Age, RsRead!sex)
For I = 1 To RsRead.RecordCount
Load lbl(I)
Load lblDat(I)
Load lblDir(I)
Load Me.Bar(I)
Me.Bar(I).Left = X
Me.Bar(I).Height = Cof * IIf(IsNumeric(RsRead!Result), RsRead!Result, 0)
Me.Bar(I).Top = 4510 - Me.Bar(I).Height
Me.lbl(I) = Format(IIf(IsNull(RsRead!Result), 0, RsRead!Result), "0.0")
Me.lbl(I).Left = X - 100
Me.lblDir(I) = Dir(RsRead!Result)
Me.lblDir(I).Left = X
Me.lblDat(I) = Format(RsRead![Result Date], "d/m/yy")
Me.lblDat(I).Left = X - 100
Me.lblDat(I).Top = Me.Bar(I).Top + Me.Bar(I).Height + 100
Me.lbl(I).Top = Me.Bar(I).Top - 300
Me.lblDir(I).Top = Me.Bar(I).Top - 600
X = X + 650
lbl(I).Visible = True
lblDat(I).Visible = True
lblDir(I).Visible = True
Me.Bar(I).Visible = True
RsRead.MoveNext
Next
Me.Picture1.Width = X + 200
Me.HScroll1.Max = I
Me.Shape1.Width = Me.Picture1.Width
End If
RsRead.Close
End Sub
Hope this works for you.
Enter your message below
Sign in or Join us (it's free).