<Índice> <1> <2> <3> <4> <5> <6> <7> <8> <9> <10> <11> <12> <13> <14> <15> <16> <17> <Pág. Princ.>

 

DICAS E MACETES:

SETUP DO VB 4.0-32BITs OU DO VB 5.0 EM PORTUGUÊS:
Dica retirada do Site da Forum Access: www.forumaccess.com.br

Para instalar a versão em Português do Setup Kit 5.0  recomendamos
os seguintes procedimentos:

  1. Localize o diretorio do Microsoft Visual Basic;
  2. Renomeie o atual arquivo (inglês) Setup132.exe que já existe no
     subdiretorio "\setupkit\setup1\" do seu Visual Basic.
        Ex: Renomeie-o para "Setup132-original.EXE"
  3. Copie o novo arquivo em Português para este mesmo diretório;
  4. Faça um teste com qualquer aplicação DEMO ou que você já tenha
     desenvolvido.

- Para fazer este teste, você deverá selecionar o ícone do Application Setup
Wizard que está no mesmo grupo de programas do Visual Basic.
Na caixa que pergunta o nome do projeto, selecione qualquer um que você
tenha em seu computador.
- Siga os passos do Wizard normalmente!
- Após gerado o arquivos de instalação, execute o arquivo "setup.exe" que
foi criado pelo Wizard.
- Perceba que seu programa de instalação já encontra-se em português!

DICA: Você pode renomear o arquivo SETUP.EXE que o Wizard criou para, por
exemplo, INSTALAR.EXE ou CONFIG.EXE, de modo que fique mais intuitivo para
usuários mais leigos.
 

UPGRADE: Antes de abrir um projeto do VB 3.0 no 4 ou 5, faça backup de todos os elementos do projeto, inclusive as VBX, DLL, MDB, etc.
 
 

COMPILAÇÃO CONDICIONAL:
Procurar no Help do VB por compiler constants. (#If... Then... #Else).
 

 
ABRIR BANCO DE DADOS:

Public Sub AbrirBanco(db As Database, Path_ps As String, File_ps As String)
    On Error GoTo TrataErr_DB
    Path_ps = VerificaOrtografiaCaminho(Path_ps)
    File_ps = VerificaOrtografiaArquivo(File_ps)
    Set db = OpenDatabase(Path_ps & File_ps, False)
    On Error GoTo 0
    Exit Sub
TrataErr_DB:
    Select Case Err
    Case 3000 'Banco está aberto como exclusivo
        MsgBox "O Banco de Dados está aberto para manutenção.", 16            , cNomeSistema_gs
        End
    Case 3033 'Identificação ou password Incorreta
        MsgBox "Acesso negado. Usuário e senha, do Banco " & Arquivo_ps _
               & ", sem permissão.", 16, cNomeSistema_gs
        End
    Case 3028
        MsgBox "Informe o Diretório de Trabalho do Sistema " _
               & cNomeSistema_gs & ", no Gerenciador de Programas.", 16 _
               , cNomeSistema_gs
        End
    Case 3049 'Banco de Dados Corrompido
        Call RepararBanco(Path_ps, File_ps)
          Resume
    Case 3029 'Password Incorreta
        MsgBox "Acesso negado. Senha, do Banco " & Arquivo_ps & " , inválida."_                , 16, cNomeSistema_gs
        End
    Case Else
        MsgBox Str$(Err) & ": " & Error$(Err), 16, cNomeSistema_gs
        End
    End Select
End Sub
 
 

 CRYSTAL REPORTS CUSTOM CONTROL:

CONSTANTES USADAS NOS SISTEMAS:

Global Const cNomeSistema_gs = "Nome do Sistema"
Global Const cUserName_gs = "UserName"
Global Const cPassword_gs = "Password"

Global AtivadoPeloPrograma_gb   As Boolean
Global InicializandoSistema_gb  As Boolean

Dim Lendo_mb      As Boolean
Dim Alterando_mb  As Boolean
Dim Novo_mb       As Boolean

Acompanhando o Visual BASIC 5.0, vem o software Crystal Reports 4.0. É um software extremamente útil, possibilitando a rápida criação e impressão de relatórios.

Após ter criado seu relatório, insira em seu formulário um controle do Crystal. Se ele não estiver em sua caixa de ferramentas, vá no menu Project/Components e selecione o controle do Crystal.

Assim como qualquer controle Visual BASIC, este tem várias propriedades. Vamos a uma breve explicação sobre as principais, com exemplos (entre <>) e supondo o nome do seu controle ser Relatorio1

Action
     <Relatorio1.Action = 1> Imprime seu Relatório
Connect
     <Relatorio1.Connect = "DSN = Villalon;UID = Fernando;PWD = LITOTECH">
Dá o log on em um servidor chamado Villalon, com o username Fernando e a senha LITOTECH. Utilizado somente em ambientes cliente/servidor, com acesso a bancos de dados via ODBC

Copies To Printer
     <Relatorio1.CopiesToPrinter = 3> Imprime 3 cópias do seu relatório.
Destination
     <Relatorio1.Destination = x> manda o relatório para um dispositivo específico. No caso, x será 0 para que o relatório seja enviado para o monitor, 1 para ser enviado à impressora e 2 para ser gravado em arquivo.
 
Password
     <Relatorio1.Password = "Litotech "> Envia a senha Litotech para um
arquivo .MDB PrintFileName
     <Relatorio1.PrintFileName =  "C:\CONTROLE\CNTR.TXT "> imprime o
relatório em um arquivo chamado CNTR.TXT

ReportFileName
<Relatorio1.ReportFileName = "C:\CONTROLE\OPEN.RPT "> especifica ao controle que o relatório corrente é o OPEN.RPT.

UserName
<Relatorio1.UserName =  "Fernando"> envia o username FERNANDO para um arquivo .MDB
 
 

Selection Formula

Muitos programadores por aí estão quebrando a cabeça tentando colocar SQL nessa propriedade. ESTA PROPRIEDADE NÃO ACEITA O CÓDIGO SQL COM SUA SINTAXE NORMAL. Essa propriedade tem sua sintaxe própria, que é muito parecida com SQL. Um exemplo:

Você quer imprimir o relatório  "PROVAS.RPT" na impressora, listando apenas os alunos da classe 'F'. Você tem o relatório, e seu arquivo .MDB contém uma tabela 'EscolaA', e dentro desta tabela um campo texto 'Classe'. O Código fica assim:

Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT"
Relatorio1.SelectionFormula = "{EscolaA.classe}='F'"
Relatorio1.Action = 1

Note alguns detalhes: Para especificar o campo a ser selecionado, escreva entre chaves o nome da tabela. O nome do campo. Como o campo em questão é um campo texto, o valor a ser selecionado (no caso a string F) aparece entre aspas simples.

Assim como em SQL, você pode unir vários critérios de seleção por via da palavra chave AND. Por exemplo, você agora que listar apenas os alunos da classe 'F' e que tenham recebido uma nota maior do que 5:

Relatorio1.ReportFileName =  "C:\ESCOLA\PROVAS.RPT"
Relatorio1.SelectionFormula = "{EscolaA.classe}='F' AND {EscolaA.nota}>5"
Relatorio1.Action = 1
 Para se especificar datas, utiliza-se uma das várias funções de data suportadas pelo Crystal. vou dar o exemplo de uma, a função Date, que tem a sintaxe <Date(yyyy,mm,dd)>. Você quer imprimir um relatório de todas as Classes cujas provas tenham sido realizadas entre o dia 1/04/97 e 31/5/97:

Relatorio1.ReportFileName = "C:\ESCOLA\PROVAS.RPT"
Relatorio1.SelectionFormula = "{EscolaA.DataProva}>=Date(1997,04,01) AND
{EscolaA.DataProva}>=Date(1997,05,31)
Relatorio.Action = 1

Para se programar, não é necessário que você seja um 'cobra' da informática, mas conhecimento sempre ajuda. O importante em um programador é sua capacidade de fazer com que um programa execute suas tarefas escrevendo o menor número de linhas de Código possíveis. Isso fará com que o computador tenha a necessidade de processar menos dados, aumentando a velocidade de execução. Um bom programa deve ser escrito de forma modular, ou seja, você deve ter várias funções ou subs que sejam comuns a vários procedimentos. Assim, fica mais fácil identificar erros, realizar manutenção de seu software e atualizações. Além do mais, economiza seu tempo e paciência, pois você não terá que digitar a mesma coisa várias vezes. Por exemplo, os Códigos de Selection Formula. Você provavelmente terá mais de um relatório em seu programa. Assim, crie uma sub que defina a selection formula e imprima seu relatório, recebendo por referência os valores necessários (nome dos campos, valores, comparadores, etc.).

Infelizmente, não se encontram com facilidade bons livros de Visual BASIC. Em sua maioria, os livros são ótimos ao explicar as vantagens do ambiente G.U.I., o uso da interface, dos gráficos, etc. Mas praticamente TODOS são extremamente fracos no quesito BANCO DE DADOS. Ora, os bancos de dados são os arquivos mais importantes da maioria dos programas. Em quase todos os livros você encontrará apenas noções superficiais sobre o Microsoft Jet Engine e a linguagem SQL.

Um bom livro para quem já é programador em outras linguagens é o "Microsoft Visual BASIC 4 - Segredos e Soluções", de Gary Cornell e Troy Strain, editado pela Makron Books. É indicado para programadores pois se concentra em familiarizar o programador com o ambiente Visual BASIC, sem grandes exemplos inúteis e lições de lógica, etc. Infelizmente também é superficial no quesito banco de dados, mas é muito bom em outros pontos. Fora esse livro, os bons são os editados pela própria Microsoft, os livros assinados pela Microsoft Press. Você pode comprá-los em sua livraria local (geralmente a preços acima de R$ 150,00) ou na amazon.com, a preços bem mais em conta. Detalhe: esses livros são sempre em inglês.
 
 

VERIFICAR ORTOGRAFIA DE ARQUIVO:

Sub VerificaOrtografiaArquivo(Arquivo_ps)
    If Mid$(Arquivo_ps,1,1) = "\" Then
        VerificaOrtografiaArquivo = Mid$(Arquivo_ps,2)
    Else
        VerificaOrtografiaArquivo = Arquivo_ps
    End If
End Sub
 

VERIFICA ORTOGRAFIA DE CAMINHO:

Sub VerificaOrtografiaCaminho(Caminho_ps)
    If Mid$(Caminho_ps,Len(Caminho_ps),1) = "\" Then
        VerificaOrtografiaArquivo = Caminho_ps
    Else
        VerificaOrtografiaArquivo = Caminho_ps & "\"
    End If
End Sub

 
TOCANDO MIDI NO VB:

     A edição profissional do VB inclui um OCX, o MCI Multimedia Control, que permite a execução de MIDIs, WAVs eCDs de música, entre outros.  Entretanto, para quem não tem a edição profissional ou prefere não utilizar o OCX, pode utilizar a função mciSendString da API do Windows.

     Primeiro, crie um Module e, nele declare a função mciSendString:

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal  hwndCallback As Long) As Long

     Antes de tocar o MIDI é preciso abri-lo. Basta usar o mciSendString assim:

     mciSendString "open c:\Musicas\Musica.Mid type sequencer alias
     apelido", 1, 1, 1

     O trecho alias (apelido) pode ser omitido, mas recomendo a sua utilização. Qualquer palavra que for colocada no lugar de apelido, poderá ser usada quando for feita alguma referência a este MIDI. Se você não usar o alias apelido, deverá indicar todo o caminho     (c:\Musicas\....) do arquivo. Nos exemplos a seguir, considerei o uso do alias apelido.

     Para tocar o MIDI, use:

     mciSendString "play apelido", 1, 1, 1

     Saindo do programa sem parar de tocar o MIDI, ele continua tocando.
     Para pará-lo, use:

     mciSendString "stop apelido", 1, 1, 1

     Antes de fechar seu programa, você ainda deve fechar o MIDI:

     mciSendString "close apelido", 1, 1, 1

     O ideal é colocar este último comando, o close, no Evento Form_Unload. Assim, quando o Form é fechado, o MIDI pára de tocar e é fechado.

 ASSOCIAR UM ÍCONE AO PONTEIRO DO MOUSE AO PASSAR
SOBRE UM CONTROLE:
- Selecionar o controle;
- Alterar a propriedade MousePointer do controle;
- Alterar a propriedade MouseIcon para o ícone desejado.
 

REGISTRAR OCX:
Na subpasta \tools\constrol do CD de instalação do VB5 existem controles extras (como é o caso do Sheridan e outros, inclusive os arquivos de Help desses controles e um arquivo texto contendo instruções de como registrar estas OCX.

Supondo que desejamos registrar o controle Sheridan 3D Controls:
- Devemos copiar o arquivo threed32.ocx da referida pasta do CD para a pasta system;
- Devemos executar: c:\windows\system\regsvr32.exe threed32.ocx;
- Dar um duplo clique no arquivo com extensão reg da referida pasta do CD e pronto.
 

NOMES DE ALGUNS CONTROLES IMPORTANTES DO VB5:

Controle de ABAS: Mocrosoft Tabbled Dialog Control 5.0
Diálogo Comum: Microsoft Common Dialog Control 5.0
ToolBar, StatusBar e outros: Microsoft Windows Common Control 5.0