Ciao a tutti,
come al solito, dopo aver letto e riletto in giro per internet non riesco a risolvere un problema su una listbox a 3 colonne creata in una form temporanea,
il problema e che non riesco a mettere le intestazione di colonna,
ma forse il ciò per come ho fatto io non si può fare.
chiedo aiuto posto il codice
Public Function form_temp_ferie()
Dim FormTemp As Object
Dim NewFrame As MSForms.Frame
Dim NewButton As MSForms.CommandButton
Dim NewListBox As MSForms.ListBox
Dim NewLabel As MSForms.Label
Application.VBE.MainWindow.Visible = False
Set FormTemp = Application.VBE.ActiveVBProject.VBComponents.Add(3)
'crea User Form
With FormTemp
.Properties("Caption") = "Riepilogo Ferie per Mese"
.Properties("Width") = 400
.Properties("Height") = 270
End With
'crea ListBox
Set NewListBox = FormTemp.Designer.Controls.Add("Forms.listbox.1")
With NewListBox
.name = "lstb_1"
.Top = 25
.Left = 20
.width = 215
.height = 140
.Font.name = "Times New Roman"
.Font.Size = 10
End With
'creazione pulsante
Set NewButton = FormTemp.Designer.Controls.Add("Forms.commandbutton.1")
With NewButton
.name = "command_1"
.Caption = "Chiudi"
.Accelerator = "M"
.Top = 102
.Left = 306
.width = 66
.height = 20
.Font.name = "Times New Roman"
.Font.Size = 10
End With
'crea label
Set NewLabel = FormTemp.Designer.Controls.Add("Forms.label.1")
With NewLabel
.name = "lbl"
.Caption = "Selezionare una riga per avere più dettagli"
.Top = 10
.Left = 40
.width = 200
.height = 15
.Font.name = "Times New Roman"
.Font.Size = 10
End With
'inserire righe per catturare la scelta "
' config modulo UserForm_Initialize
FormTemp.CodeModule.InsertLines 8, "Private Sub UserForm_Initialize()"
FormTemp.CodeModule.InsertLines 11, "Dim rs As DAO.Recordset "
FormTemp.CodeModule.InsertLines 12, "Dim sql As String "
FormTemp.CodeModule.InsertLines 13, "Dim i As Integer "
FormTemp.CodeModule.InsertLines 14, "i=0 "
FormTemp.CodeModule.InsertLines 15, "sql = ""SELECT presenza_lavorativa.presenze, Month([iddata]) AS Mese, Count(presenza_lavorativa.presenze) AS Totale FROM presenza_lavorativa GROUP BY presenza_lavorativa.presenze, Month([iddata]), presenza_lavorativa.iduser, Year([iddata]) HAVING (((presenza_lavorativa.presenze)='CO' Or (presenza_lavorativa.presenze)='FS') AND ((presenza_lavorativa.iduser)=utente_inserimento_presenze()) AND ((Year([iddata]))=cambio_anno())) ORDER BY presenza_lavorativa.presenze, Month([iddata]);"" "
FormTemp.CodeModule.InsertLines 16, "Set rs = CurrentDb.OpenRecordset(sql, dbOpenDynaset, dbReadOnly)"
FormTemp.CodeModule.InsertLines 17, "With Me.lstb_1 "
FormTemp.CodeModule.InsertLines 18, " .ColumnCount = 3 "
FormTemp.CodeModule.InsertLines 19, " .ColumnWidths = ""70;70;70"""
FormTemp.CodeModule.InsertLines 19, " .ColumnHeads = True "
FormTemp.CodeModule.InsertLines 20, " .AddItem "
-------------------------------------------------------------------------------------------
FormTemp.CodeModule.InsertLines 21, " .List(i, 0) = ""Presenza"""' vorrei usare come intestazione colonna 1
FormTemp.CodeModule.InsertLines 22, " .List(i, 1) = ""Mese"""' vorrei usare come intestazione colonna 2
FormTemp.CodeModule.InsertLines 23, " .List(i, 2) = ""Totale""" ' vorrei usare come intestazione colonna 3
----------------------------------------------------------------------------------------
FormTemp.CodeModule.InsertLines 24, "i = i + 1"
FormTemp.CodeModule.InsertLines 25, "Do While Not rs.EOF "
FormTemp.CodeModule.InsertLines 26, " .AddItem "
FormTemp.CodeModule.InsertLines 27, " .List(i, 0) = rs!presenze "
FormTemp.CodeModule.InsertLines 28, " .List(i, 1) = rs!mese "
FormTemp.CodeModule.InsertLines 29, " .List(i, 2) = rs!Totale "
FormTemp.CodeModule.InsertLines 30, "i = i + 1 "
FormTemp.CodeModule.InsertLines 31, "rs.MoveNext "
FormTemp.CodeModule.InsertLines 32, "Loop "
FormTemp.CodeModule.InsertLines 33, "End With "
FormTemp.CodeModule.InsertLines 34, "rs.Close "
FormTemp.CodeModule.InsertLines 35, "Set rs = Nothing "
FormTemp.CodeModule.InsertLines 36, "End Sub "
FormTemp.CodeModule.InsertLines 37, " "
'config button
FormTemp.CodeModule.InsertLines 40, "Private Sub command_1_Click()"
FormTemp.CodeModule.InsertLines 41, ""
FormTemp.CodeModule.InsertLines 42, " Unload Me"
FormTemp.CodeModule.InsertLines 43, " "
FormTemp.CodeModule.InsertLines 44, "End Sub"
'display form
VBA.UserForms.Add(FormTemp.name).Show
Application.VBE.ActiveVBProject.VBComponents.Remove FormTemp
Application.VBE.MainWindow.Visible = True
End Function
spero di avermi spiegato.
Grazie.
Ciao...