Notifications
Clear all

Rowsource externa

5 Posts
2 Usuários
0 Reactions
2,103 Visualizações
(@arthurdiegoo)
Posts: 99
Estimable Member
Topic starter
 

Galera, estou migrando todos os meus formulários para cadastrar e pegar os dados de um workboot de database...

Seguindo o exemplo postado pelo Mauro, onde ele usa 4 sheets de uma planilha de database para um modelo de cadastro.

A adptação está ocorrendo muito bem, mas me deparei com um probleminha irritante...

Possuo um formulário que usa uma combobox com rowsource: Clientes!B2:B5000 , para selecionar o cliente que terá seu orçamento efetuado.

O problema está no seguinte, como migrei a sheet Clientes para o wbDatabase (definido em um módulo público), a combobox não é preenchida mais pelos nomes.

Já tentei mudar a rowsource para: 'C:UsersMELCTUR 1DesktopPlanilhasSuprema[ModeloCadastro_Dados.xls]Clientes'!B2:B5000

Mas ao tentar sair do campo de propriedade dá erro... e eu realmente não queria usar esse tipo de rowsource, gostaria de saber se é possível de usar:

wbDatabase e wsClientes para definir a rowsource...

Obrigado galera!

 
Postado : 28/03/2012 10:29 am
(@arthurdiegoo)
Posts: 99
Estimable Member
Topic starter
 

Se for difícil ou complexo de fazer isso... Gostaria de saber aos companheiros se é possível ao iniciar o formulário colocar uma macro para preencher uma sheet com os dados, e ao fechar o formulário, apagar ( para evitar a sobrecarga da planilha )

 
Postado : 28/03/2012 10:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Arthur, se não chegou a fazer nenhuma adaptação no modelo qwue citou postado no forum do Tomas, proceda da seguiinte forma.

O Banco de dados já é definido na Rotina DefinePlanilhaDados que no modelo citado a variável wsCadastro, então no formulario que quer o combo, coloque a sehuinte instrução :

cboSeuCombo.RowSource = wsCadastro.Range("B2:B" & Trim(str(wsCadastro.Range("B60000").End(xlUp).Row))).Address(0, 0, xlA1, True)
A instrução acima preencherá o seu combo com todos os dados da planilha externa referente a Coluna B:B.

Se quiser com intervalo defindo a mesma ficará :
cboSeuCombo.RowSource = wsCadastro.Range("B2:B500").Address(0, 0, xlA1, True)

Mas, para que funcione corretamente, tenha a certeza de que o formulário que adiconou o combo e a rotina é inciado com a rotina DefinePlanilhaDados, que é quem faz a ligação dos arquivos externos.

[]s

 
Postado : 28/03/2012 10:51 am
(@arthurdiegoo)
Posts: 99
Estimable Member
Topic starter
 

Show grande Mauro, sabia que podia contar com vocês do fórum!

Mais uma resposta ágil e precisa! Muito obrigado, funcionou direitinho!

PS: obrigado pelo modelo de usar várias databases externas, vai ajudar muito, pois pretendo por o sistema para rodar em link, em mais de um computador!

 
Postado : 28/03/2012 11:07 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Arthur, o maior mérito é do Tomas por ter confeccionado o primeiro modelo e disponibilizado, e eu cheguei a lidar e fazer tantas adaptações no modelo original, que na maioria das duvidas referentes ao mesmo eu não preciso nem ter um modelo em mãos, a não ser que cheguem a fazer outro tipo de adaptação, por isso foi possível uma resposta mais imediata.

Mas veja no Forum do Tomas, que temos diversos tipos de modelos prontos, e alguns até interessantes ligando o Excel com BD feito em Access.

[]s

 
Postado : 28/03/2012 11:21 am