Ir para conteúdo
Fórum Script Brasil
  • 0

Atribuir Fonte De Controle A Um Objeto Não-acoplado


Elber Carretoni

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

Fera dei uma pesquisada e achei essa função que preenche essa lista, acho que se você adaptar pode usar pra isso que você quer.

Function PreencheLista(ctl As Control, varID As Variant, _

lngRow As Long, lngCol As Long, intCode As Integer) As Variant

' Argumentos:

' ctl - refere-se à listbox ou combobox sendo preenchida;

' varID - valor único que identifica o controle sendo preenchido.

' lngRow - nº da linha que está sendo preenchida (começa em zero);

' lngCol - nº da coluna que está sendo preenchida (começa em zero); e

' intCode - é a "pergunta" que o Access faz à função. O valor de intCode

' indica qual ação será executada pela função.

On Error GoTo PreencheLista_Err

Dim varRet As Variant ' recebe o valor de retorno da função (Variant).

Dim I As Integer ' serve de contador.

Static varNome() As Variant 'cria uma matriz dinâmica que guarda valores.

Static intReg As Integer

Select Case intCode

Case acLBInitialize ' intCode = 0 - inicializa o controle.

Dim Rs1 As Recordset

Set Rs1 = CurrentDb.OpenRecordset("Clientes", dbOpenSnapshot)

With Rs1

If Not .EOF Then .MoveLast 'necessário para RecordCount.

intReg = .RecordCount

'Redimensiona a matriz conforme nº de registros de Rs1.

ReDim varNome(intReg, 2) '3 dimensões.

.MoveFirst

For I = 0 To intReg - 1

varNome(I, 0) = !CódigoDoCliente

varNome(I, 1) = !NomeDaEmpresa

varNome(I, 2) = !Cidade

.MoveNext

Next I

End With

Set Rs1 = Nothing 'libera memória.

varRet = True

Case acLBOpen ' intCode = 1 - abre.

varRet = Timer ' Gera valor exclusivo baseado na função Timer.

Case 2 ' intCode = 2 - este código não é documentado.

Case acLBGetRowCount ' intCode = 3 - obtém nº de linhas.

varRet = -1 ' valor desconhecido. O Access irá descobrir o nº de linhas.

Case acLBGetColumnCount ' intCode = 4 - obtém nº de colunas.

'Podemos definir na folha de propriedades do controle

'ou especificar um valor aqui.

varRet = 3

Case acLBGetColumnWidth ' intCode = 5 - obtém a largura da coluna.

'Podemos definir na folha de propriedades do controle.

'Especifique um valor aqui ou pule esta opção.

varRet = -1 ' Utiliza a largura definida em propriedades.

Case acLBGetValue ' intCode = 6 - obtém os dados para o controle.

varRet = varNome(lngRow, lngCol)

Case acLBGetFormat ' intCode = 7 - formato a ser usado.

'Pule esta opção ou defina varRet = -1 para o valor padrão.

Case acLBClose ' intCode = 8 - não usado.

'Seu uso não é documentado.

Case acLBEnd ' intCode = 9 - Fim.

'Não retorna nada. Usado quando você fecha o form ou dá um

'Requery no controle. Aqui você poderá colocar código para

'liberar memória (limpar variáveis etc).

Erase varNome()

End Select

PreencheLista = varRet

Exit Function

PreencheLista_Err:

MsgBox "Erro " & Err.Number & vbCrLf & Err.Description, _

vbExclamation, "Função: PreencheLista"

End Function

O nome da função é inserido na propriedade Tipo de origem da linha (RowSourceType) da combo box sem ser precedido por um sinal de igualdade (=) e sem terminar com parênteses. Escreva assim: PreencheLista

Fonte: JR´s Access FAQ

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...