Skip to content

Instantly share code, notes, and snippets.

@afa7789
Created March 30, 2026 23:05
Show Gist options
  • Select an option

  • Save afa7789/4bd2536ff42717031ea3d1cea447d2ae to your computer and use it in GitHub Desktop.

Select an option

Save afa7789/4bd2536ff42717031ea3d1cea447d2ae to your computer and use it in GitHub Desktop.
VBA extraction guide.

Guia de Pesquisa: Inventário dos Projetos Access VEBRUS

Objetivo

Documentar a estrutura, lógica de negócio e complexidade de cada projeto Access para planejar a modernização.


Começo Rápido (Windows Limpo, sem dor de cabeça)

Se você quer o caminho mais simples para executar este guia:

  1. Instale o WSL (opcional, útil para terminal Linux)
  2. Instale Python no Windows
  3. Rode os comandos access-vba no PowerShell do Windows (nao no Linux do WSL)

Links oficiais:


WSL para Iniciantes (passo a passo)

0.1 Instalar WSL

  1. Abra o menu Iniciar
  2. Procure por PowerShell
  3. Clique com botao direito em Windows PowerShell -> Executar como administrador
  4. Rode:
wsl --install
  1. Reinicie o PC quando pedir
  2. Ao voltar, o Ubuntu abre sozinho e pede:
    • Nome de usuario (voce cria)
    • Senha (voce cria)

Se quiser checar se deu certo no PowerShell:

wsl --status
wsl -l -v

0.2 Atualizar Ubuntu (dentro do WSL)

Quando abrir o terminal Ubuntu, rode:

sudo apt update && sudo apt upgrade -y

0.3 Regra de ouro para este projeto

  • O Access roda no Windows
  • Entao os comandos de extracao do Access neste guia devem ser executados no PowerShell do Windows
  • Use WSL para utilitarios (git, grep, organizacao de arquivos), nao para abrir Access

Se tentar rodar tudo no WSL, vai travar na parte do Access/Office.


Fase 1: Preparação (Windows Necessário)

1.1 Instalar Ferramentas

Abra PowerShell normal (nao precisa admin) e rode:

# Instalar vba-edit (zero-config)
pip install vba-edit

# Verificar instalação
access-vba --help

Se pip nao funcionar, tente:

python -m pip install vba-edit
python -m access_vba --help

1.2 Criar Pasta de Exportação

mkdir vebrus_research
cd vebrus_research

Se sua base estiver em outro caminho, ajuste os exemplos seguintes para o seu caminho real.


Fase 2: Inventário dos Módulos VBA

2.1 Listar Todos os Módulos

# ControlCheq
access-vba list -f "..\VEBRUS\VEBRUS\ControlCheq.accdb" > 01_controlchek_listagem.txt

# GERENTE+Plus
access-vba list -f "..\VEBRUS\VEBRUS\GERENTE+Plus.accdb" > 02_gerenteplus_listagem.txt

# Database1
access-vba list -f "..\VEBRUS\VEBRUS\Dados\Database1.accdb" > 03_database1_listagem.txt

2.2 Documentar Saída

Para cada projeto, preencher:

PROJETO: _____________________
DATA: ________________________

MÓDULOS VBA ENCONTRADOS:
1. ___________________________
2. ___________________________
3. ___________________________

CLASSES VBA ENCONTRADAS:
1. ___________________________
2. ___________________________

FORMULÁRIOS:
1. ___________________________
2. ___________________________

RELATÓRIOS:
1. ___________________________
2. ___________________________

CONSULTAS SQL:
1. ___________________________
2. ___________________________

Fase 3: Extrair Código-Fonte

3.1 Exportar Projetos Completo

# ControlCheq
access-vba edit -f "..\VEBRUS\VEBRUS\ControlCheq.accdb" -o controlchek_src

# GERENTE+Plus  
access-vba edit -f "..\VEBRUS\VEBRUS\GERENTE+Plus.accdb" -o gerenteplus_src

# Database1
access-vba edit -f "..\VEBRUS\VEBRUS\Dados\Database1.accdb" -o database1_src

3.2 Ler Módulos Críticos

# Ler todos os módulos de uma vez
access-vba read-all -f "..\VEBRUS\VEBRUS\ControlCheq.accdb" > controlchek_codigo.txt
access-vba read-all -f "..\VEBRUS\VEBRUS\GERENTE+Plus.accdb" > gerenteplus_codigo.txt
access-vba read-all -f "..\VEBRUS\VEBRUS\Dados\Database1.accdb" > database1_codigo.txt

Fase 4: Análise de Domínio de Negócio

4.1 Identificar Tabelas (via Schema)

Para cada projeto, abrir o Access e documentar:

TABELAS PRINCIPAIS:
┌─────────────────────┬──────────────────────────────────────┐
│ Tabela              │ Descrição / Propósito               │
├─────────────────────┼──────────────────────────────────────┤
│ tblClientes         │ Cadastro de clientes                │
│ tblProdutos         │ Catálogo de produtos                │
│ ...                 │                                      │
└─────────────────────┴──────────────────────────────────────┘

4.2 Identificar Relacionamentos

RELACIONAMENTOS:
- Cliente (1) ──────< Pedido (N)
- Pedido (1) ──────< ItemPedido (N)
- Produto (1) ──────< ItemPedido (N)

4.3 Identificar Regras de Negócio

Procurar no código VBA por:

  • Function e Sub que implementam lógica
  • Validações (If...Then)
  • Cálculos (DLookup, DSum)
  • Mensagens de erro customizadas

Fase 5: Análise de Complexidade

5.1 Métricas a Coletar

Métrica Como Obter Ferramenta
Nº de tabelas Exportar schema Access
Nº de formulários access-vba list vba-edit
Nº de módulos VBA access-vba list vba-edit
Linhas de código VBA access-vba read-all Contar manualmente
Nº de consultas SQL Exportar queries Access

5.2 Template de Complexidade

COMPLEXIDADE DO PROJETO: _____________________

Nº Tabelas: _____
Nº Formulários: _____
Nº Relatórios: _____
Nº Módulos VBA: _____
Nº Classes VBA: _____
Nº Consultas: _____
Linhas de código VBA: _____

COMPLEXIDADE GERAL (1-5):
[ ] 1 - Simples (poucas tabelas, lógica básica)
[ ] 2 - Moderado (10-20 tabelas, algumas regras)
[ ] 3 - Intermediário (20-30 tabelas, lógica complexa)
[ ] 4 - Complexo (30+ tabelas, muitas integrações)
[ ] 5 - Muito complexo (sistema crítico, múltiplas integrações)

Fase 6: Identificar Código Duplicado

6.1 Comparar Projetos

Após exportar os 3 projetos, criar matriz:

CÓDIGO DUPLICADO ENCONTRADO:
┌──────────────────┬──────────────────┬──────────────────┐
│ ControlCheq      │ GERENTE+Plus     │ Database1        │
├──────────────────┼──────────────────┼──────────────────┤
│ modUtils         │ modFuncoes      │                  │
│ modValidacao     │ modValidacao     │ modValidacao     │
│ (80% igual)      │ (80% igual)      │ (80% igual)      │
└──────────────────┴──────────────────┴──────────────────┘

Fase 7: Documento Final de Pesquisa

Template de Relatório

# Relatório de Pesquisa: [Nome do Projeto]

## 1. Resumo Executivo
[Breve descrição do sistema e propósito]

## 2. Domínio de Negócio
[Área de atuação: estoque, financeira, RH, etc.]

## 3. Estrutura de Dados

### 3.1 Tabelas Principais
[Lista com descrições]

### 3.2 Relacionamentos
[Diagrama ou descrição]

## 4. Código VBA

### 4.1 Módulos Críticos
[Lista priorizada]

### 4.2 Regras de Negócio Identificadas
[Lista de lógicas importantes]

## 5. Análise de Complexidade
[Métricas e评分]

## 6. Oportunidades de Modernização
[O que pode ser melhorado]

## 7. Riscos Identificados
[Dependências, integrações críticas]

## 8. Prioridade de Migração
[1-5,理由]

Checklist de Pesquisa

PREPARAÇÃO
☐ Windows com Access instalado
☐ Python com vba-edit instalado
☐ Pasta vebrus_research criada

CONTROLCHEQ
☐ Listagem de módulos
☐ Exportação completa
☐ Código extraído
☐ Tabelas documentadas
☐ Regras de negócio identificadas
☐ Complexidade avaliada

GERENTE+PLUS
☐ Listagem de módulos
☐ Exportação completa
☐ Código extraído
☐ Tabelas documentadas
☐ Regras de negócio identificadas
☐ Complexidade avaliada

DATABASE1
☐ Listagem de módulos
☐ Exportação completa
☐ Código extraído
☐ Tabelas documentadas
☐ Regras de negócio identificadas
☐ Complexidade avaliada

ANÁLISE CRUZADA
☐ Código duplicado identificado
☐ Oportunidades de consolidação
☐ Prioridade de modernização definida
☐ Relatório final escrito

Próximos Passos Após Pesquisa

  1. Enviar código para Gemini → Análise holística
  2. Usar Claude → Refatoração módulo a módulo
  3. Planejar migração → Escolher padrão (estrangulador vs completo)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment