|
|
|
|
|
Dicas
|
|
Visual Basic (ActiveX/Controles/DLL)
|
|
|
Título da Dica: Preenchendo um ComboBox com os Registros de um Banco de
|
|
|
|
Postada em 14/8/2000 por Webmaster
webmaster@vbweb.com.br
Bom, primeiro você deve abrir o Recordset (tanto faz se isso é feito em DAO ou ADO) e, depois disso feito, execute esta rotina:
'Abre o Recordset... RS.MoveFirst Do While Not RS.EOF Combo1.AddItem RS![Nome do Campo] RS.MoveNext Loop Uma dica interessante seria, por exemplo, exibir na ComboBox o campo Nome e guardar na própria ComboBox o valor do campo Código. Veja como fazer isto:
'Abre o Recordset... RS.MoveFirst Do While Not RS.EOF Combo1.AddItem RS![Nome] Combo1.ItemData(Combo1.NewIndex) = RS![Código] RS.MoveNext Loop Então, digamos que você queira jogar na variável sNom o Nome selecionado na ComboBox e na variável iCod o código correspondente a este nome selecionado. Para isso, proceda da seguinte forma:
'No evento que você quizer, coloque isto: Dim sNom As String, iCod As Integer If Combo1.ListIndex <> -1 Then iCod = Combo1.ItemData(Combo1.ListIndex) sNom = Combo1.Text End If
------------------------------------------------------------------------------- Auto Ajustar Colunas no DBGrid
Private Sub DBGrid1_ColResize(ByVal ColIndex As Integer, _ Cancel As Integer) Dim DB As Database, RS As Recordset, FL As Field Dim Tamanho As Double 'Cada caracter corresponde a 120 twips na horizontal Tamanho = Len(DBGrid1.Columns(ColIndex).Caption) * 120
Set DB = OpenDatabase("C:\Dir Do VB\Biblio.mdb") Set RS = DB.OpenRecordset("Authors") Set FL = RS.Fields(DBGrid1.Columns(ColIndex).DataField)
Do While Not RS.EOF 'Verifica o tamanho de cada valor do campo On Error Resume Next If Tamanho < Me.TextWidth(FL.Value) Then Tamanho = Me.TextWidth(FL.Value) End If RS.MoveNext Loop DBGrid1.Columns(ColIndex).Width = Tamanho End Sub
|
|
|
|
|