NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosProgweb : Sistemaloginasp004
Quer receber novidades e e-books gratuitos?

Sistema de Login – Parte IV

 

Olá pessoal, estou disposto mostrar a parte do sistema de login utilizando VB 6.0, ASP 3.0, SQL Server e Stored Procedure. As partes anteriores podem ser encontradas nos sites www.aspneti.com e www.juliobattisti.com.br.

 

A parte III, criei uma function na classe global.bas com o nome AbreConexao.

 

Antes mesmo de compilar a aplicação VB 6.0, preciso adicionar uma referência para o aplicativo, resumindo, é uma dll responsável para facilitar acesso ao banco de dados, ou seja, um drive de acesso. É chamada de Microsoft ActiveX Data Objects 2.5 Library.

 

Cliquei no menu Project e em seguida na opção References para adicionar a referência citada anteriormente. Referência (4.1 – Visual Basic 6.0)

 

Referência: 4.1 – Visual Basic 6.0

 

A tela (4.2 – Visual Basic 6.0) possui uma relação de várias dlls disponíveis para serem usadas dentro do aplicativo. Escolhi uma chamada Microsoft ActiveX Data Objects 2.5 Library. Referência (4.2 – Visual Basic 6.0)

 

Referência: 4.2 – Visual Basic 6.0

 

Marquei a dll necessária para acesso ao banco de dados utilizando o Visual Basic 6.0. Procurei digitando a letra “m” e em seguida marquei a mesma desejada. Para finalizar cliquei no botão OK.

 

Compilar o Aplicativo

 

Tudo que foi feito até agora, nenhuma hora foi compilado o aplicativo para verificação de erro.  Lembro que o Visual Basic 6.0 não é igual ao novo Visual Studio.NET 2003 ou 2005, isto é, o mesmo só mostra o erro se for compilado. Para compilar e gerar a dll, cliquei no menu File / Make (nome do aplicativo). Dessa forma é gerado a dll.  Referência (4.3 – Visual Basic 6.0)

 

Referência: 4.3 – Visual Basic 6.0

 

O interessante é que se tiver algum tipo de erro dentro do aplicativo por exemplo: sintaxe ou sem fechar algum “end if”, a dll não será gerada.

 

Antes de mostrar algum erro de sintaxe ou aplicação, o Visual Basic 6.0 pedirá um caminho para gerar ou gravar a dll. Referência (4.4 – Visual Basic 6.0).

 

Referência: 4.4 – Visual Basic 6.0

 

Sem erro, a dll será gerada e pronta para ser usada.

 

Uma dica é, compile sempre o aplicativo para saber se possui algum erro.

 

Criar mais functions

 

Bom, agora que já foi mostrado como compilar um aplicativo, irei mostrar e criar outras functions dentro do global.bas. Com apenas a function AbreConexao, não adianta em nada para ser usada em um aplicativo robusto ou simples. Mais quatro functions serão criadas dentro do global.bas e assim utilizarmos uma página ASP para logar utilizando o aplicativo feito com o Visual Basic 6.0 registrado no COM + (COM PLUS).

 

Segue uma tabela com a relação de todas as functions com explicação. (Referência 4.5 – Visual Basic 6.0).

 

Referência: 4.5 – Visual Basic 6.0

 

 

Dentro do arquivo .bas, no final do método AbreConexao, dei um ENTER e coloquei as functions relacionadas acima:  Cada referência será uma function comentada. (Referência 4.6 – Visual Basic 6.0)

 

Public Function ExecutaSQLArray(ByVal SQL As String, _

                                Optional ByVal sMetodoOrigem As String = "") As Variant

Static vRetorno  As Variant

 

Static sMetodo   As String

Static bRetorno  As Boolean

 

On Error GoTo error

 

    'Setando Objeto RecordSet

    Set RS = CreateObject("ADODB.RECORDSET")

 

    'Fazendo Open no Objeto SQL

    RS.Open SQL, CONN

 

    'Criando Array

    vRetorno = RS.GetRows

    ExecutaSQLArray = vRetorno

 

    'Fechando RS

    RS.Close

    Set RS = Nothing

 

error:

    If Err.Number <> 0 And Err.Number <> 3021 Then

        'Fechando RS

        RS.Close

        Set RS = Nothing

        'Fechando Conexao

        ExecutaSQLArray = ""

    Else

        If Not IsArray(vRetorno) Then

            ExecutaSQLArray = "0"

        End If

    End If

 

End Function

 

Referência: 4.6 – Visual Basic 6.0

 

Explicação:

 

Analisando a assinatura da function, recebe dois parâmetros, um opcional e outro obrigatório, que no final é retornado um valor do tipo Variant. Esse tipo significa que, será retornado um array de dados. (Referência 4.7 – Visual Basic 6.0)

 

Public Function ExecutaSQLArray(ByVal SQL As String, _

                                Optional ByVal sMetodoOrigem As String = "") As Variant

 

Referência: 4.7 – Visual Basic 6.0

 

Adicionei algumas variáveis no começo estáticas, cada uma com um tipo. (Referência 4.8 – Visual Basic 6.0)

 

Static vRetorno  As Variant

Static sMetodo   As String

Static bRetorno  As Boolean

 

Referência: 4.8 – Visual Basic 6.0

 

Simples variáveis que serão usadas dentro da function.

 

On Error GoTo error

 

    'Setando Objeto RecordSet

    Set RS = CreateObject("ADODB.RECORDSET")

 

    'Fazendo Open no Objeto SQL

    RS.Open SQL, CONN

 

    'Criando Array

    vRetorno = RS.GetRows

    ExecutaSQLArray = vRetorno

 

    'Fechando RS

    RS.Close

    Set RS = Nothing

 

Referência: 4.9 – Visual Basic 6.0

 

No próximo passo do código, usei o on error goto erro onde posso tratar o erro se acontecer algum. Criei um objeto do tipo RecordSet, abri esse objeto. Crio o array atribuindo para a variável do tipo declarada anteriormente.

 

O segredo em criar o array com o RecordSet é colocar a function GetRows. Dessa forma, é gerado um array e pode ser atribuída ao tipo variant do Visual Basic 6.0. Atribuo a variável vRetorno ao nome da function ExecutaSQLArray.

 

Fecho o RecordSet e seto para nothing. É muito importante colocar nothing para o objeto.

 

error:

    If Err.Number <> 0 And Err.Number <> 3021 Then

        'Fechando RS

        RS.Close

        Set RS = Nothing

        'Fechando Conexao

        ExecutaSQLArray = ""

    Else

        If Not IsArray(vRetorno) Then

            ExecutaSQLArray = "0"

        End If

    End If

 

Referência: 4.10 – Visual Basic 6.0

 

Explicação:

 

Para finalizar, dentro do laço error, existe uma condição para o código erro.number, se for diferente de zero ou diferente do número 3021, fecho os objetos e atribuo a function o valor vazio. Se não houver erro, criei mais uma condição perguntar se a variável não é array, se for verdadeiro, atribuo a function ao valor zero.

 

Segue a function total. (Referência 4.11 – Visual Basic 6.0)

 

 

Referência: 4.11 – Visual Basic 6.0

 

Bom, fico por aqui. Nos próximos passos, mostrarei os outros métodos dando a devida explicação. Espero que tenha gostado.

 

Livros publicados do autor:

 

 

Mauricio Junior

www.aspneti.com

www.mauriciojunior.org

 

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2024 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI