Hei,
VBA:ssa listboxiin tulee oikeanlaisesti dataa kannasta tuotteen järjestysnumerolla. Samalla järjestysnumerolla tulee siis useiden päivien ajalta tuotteita listboxiin.
Mutta tarvitseisin vain sen viimeisimmällä päiväyksellä/kellonajalla olevan näkyviin. Osaisiko kukaan auttaa?
Moi kiepper!
tässä yksinkertainen VBA/DAO esimerkki...
'VBA-Projektiin referenssi: Microsoft DAO 3.6 Object Library 'UserForm1: '1 ListBox (ListBox1) '1 Tekstiruutu (TextBox1) '1 Komentopainike (CommandButton1) Private engine As DAO.DBEngine Private db As DAO.Database Private rs As DAO.Recordset Private Sub UserForm_Activate() Static IsLoaded As Boolean If Not IsLoaded Then Set engine = New DBEngine On Error Resume Next Set db = engine.Workspaces(0).OpenDatabase("C:\Tietokanta1.mdb", _ False, False, "MS Access;PWD=") 'esim. If Err <> 0 Then MsgBox Error$ Err.Clear On Error Goto 0 CommandButton1.Enabled = False Exit Sub End If IsLoaded = True End If End Sub Private Sub CommandButton1_Click() If TextBox1.Text = "" Then TextBox1.SetFocus Exit Sub End If On Error GoTo ErrorHandler Set rs = db.OpenRecordset("SELECT TUOTE, PVM FROM Taulu1 WHERE TUOTE='" & _ TextBox1.Text & "' ORDER BY PVM ASC", dbOpenDynaset, dbOptimistic, dbReadOnly) 'esim. If rs.RecordCount > 0 Then 'ListBox1.Clear rs.MoveLast ListBox1.AddItem rs!TUOTE & " " & rs!PVM End If rs.Close: Set rs = Nothing Exit Sub ErrorHandler: MsgBox Error$ Err.Clear On Error GoTo 0 End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) On Error Resume Next db.Close: Set db = Nothing Set engine = Nothing End Sub
ja tässä yksinkertainen VBA/ADO esimerkki...
'VBA-Projektiin referenssi: Microsoft ActiveX Data Objects 2.8 Library (msado15.dll) 'UserForm1: '1 ListBox (ListBox1) '1 Tekstiruutu (TextBox1) '1 Komentopainike (CommandButton1) Private cn As ADODB.Connection Private rs As ADODB.Recordset Private IsOpen As Boolean Private Sub UserForm_Activate() If Not IsOpen Then Set cn = New ADODB.Connection On Error Resume Next cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Tietokanta1.mdb;" If Err <> 0 Then MsgBox Error$ Err.Clear On Error GoTo 0 CommandButton1.Enabled = False Else IsOpen = True End If End If End Sub Private Sub CommandButton1_Click() If TextBox1.Text = "" Then TextBox1.SetFocus Exit Sub End If Set rs = New ADODB.Recordset On Error Resume Next rs.Open "SELECT TUOTE, PVM FROM Taulu1 WHERE TUOTE='" & TextBox1.Text _ & "' ORDER BY PVM ASC", cn, adOpenStatic, adLockOptimistic, -1 'esim. If Err <> 0 Then MsgBox Error$ Err.Clear On Error GoTo 0 Set rs = Nothing Exit Sub End If If rs.RecordCount > 0 Then 'ListBox1.Clear rs.MoveLast ListBox1.AddItem rs!TUOTE & " " & rs!PVM End If rs.Close: Set rs = Nothing End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) On Error Resume Next cn.Close: Set cn = Nothing End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.