Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador type. Mostrar todas as postagens
Mostrando postagens com marcador type. Mostrar todas as postagens

VBA Tips - Determina o tipo de conexão ativa - Determine Network Connection Type


A cada dia que passa é mais freqüente o uso de dados online oriundos de servidores na Web. Estes são automaticamente transformados em informações ao atualizarem os nossos Dashboards e Scorecards instantâneamente.


Para garantirmos que tais dados receberão as atualizações corretas no tempo apropriado é importante checarmos a conexão das nossas máquinas constantemente. A API InternetGetConnectedState declarada no wininet.dll retorna o estado da conexão do sistema local. A API é simples de usar, e retorna TRUE se houver uma conexão com a Internet.
As funções abaixo são muito úteis para garantir a validade de processos com este perfil:

IsNetConnectViaLAN

IsNetConnectViaModem

IsNetConnectViaProxy

IsNetConnectOnline

IsNetRASInstalled

GetNetConnectString


Inline image 2

Divirta-se com o código abaixo, colando-o inteiramente num novo módulo da sua aplicação.


Option Explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2011 VBnet/ Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function InternetGetConnectedState Lib "wininet" _
  (ByRef dwflags As Long, _
   ByVal dwReserved As Long) As Long

'Local system uses a modem to connect to the Internet.
Private Const INTERNET_CONNECTION_MODEM As Long = &H1

'Local system uses a LAN to connect to the Internet.
Private Const INTERNET_CONNECTION_LAN As Long = &H2

'Local system uses a proxy server to connect to the Internet.
Private Const INTERNET_CONNECTION_PROXY As Long = &H4

'No longer used.
Private Const INTERNET_CONNECTION_MODEM_BUSY As Long = &H8

Private Const INTERNET_RAS_INSTALLED As Long = &H10
Private Const INTERNET_CONNECTION_OFFLINE As Long = &H20
Private Const INTERNET_CONNECTION_CONFIGURED As Long = &H40

Private Sub Command1_Click()
   Let Text1.Text = IsNetConnectViaLAN()
   Let Text2.Text = IsNetConnectViaModem()
   Let Text3.Text = IsNetConnectViaProxy()
   Let Text4.Text = IsNetConnectOnline()
   Let Text5.Text = IsNetRASInstalled()
   Let Text6.Text = GetNetConnectString()
End Sub

Function IsNetConnectViaLAN() As Boolean
   Dim dwflags As Long
   
  'pass an empty variable into which the API will
  'return the flags associated with the connection
   Call InternetGetConnectedState(dwflags, 0&)

  'return True if the flags indicate a LAN connection
   IsNetConnectViaLAN = dwflags And INTERNET_CONNECTION_LAN
End Function

Function IsNetConnectViaModem() As Boolean
   Dim dwflags As Long
   
  'pass an empty variable into which the API will
  'return the flags associated with the connection
   Call InternetGetConnectedState(dwflags, 0&)

  'return True if the flags indicate a modem connection
   Let IsNetConnectViaModem = dwflags And INTERNET_CONNECTION_MODEM
End Function

Function IsNetConnectViaProxy() As Boolean

   Dim dwflags As Long
   
  'pass an empty variable into which the API will
  'return the flags associated with the connection
   Call InternetGetConnectedState(dwflags, 0&)

  'return True if the flags indicate a proxy connection
   Let IsNetConnectViaProxy = dwflags And INTERNET_CONNECTION_PROXY
End Function

Function IsNetConnectOnline() As Boolean
  'no flags needed here - the API returns True
  'if there is a connection of any type
   Let IsNetConnectOnline = InternetGetConnectedState(0&, 0&)
End Function

Function IsNetRASInstalled() As Boolean
   Dim dwflags As Long
   
  'pass an empty variable into which the API will
  'return the flags associated with the connection
   Call InternetGetConnectedState(dwflags, 0&)

  'return True if the flags include RAS installed
   Let IsNetRASInstalled = dwflags And INTERNET_RAS_INSTALLED
End Function

Function GetNetConnectString() As String

   Dim dwflags As Long
   Dim msg As String

  'build a string for display
   If InternetGetConnectedState(dwflags, 0&) Then
     
      If dwflags And INTERNET_CONNECTION_CONFIGURED Then
         Let msg = msg & "Você tem uma conexão de rede configurada." & vbCrLf
      End If

      If dwflags And INTERNET_CONNECTION_LAN Then
         Let msg = msg & "O sistemas local conecta-se a Internet via LAN"
      End If
      
      If dwflags And INTERNET_CONNECTION_PROXY Then
         Let msg = msg & ", e usuários no Servidor de Proxy. "
      Else
         Let msg = msg & "."
      End If
      
      If dwflags And INTERNET_CONNECTION_MODEM Then
         Let msg = msg & "O sistema local usa um modem para conectar-se a Internet. "
      End If
      
      If dwflags And INTERNET_CONNECTION_OFFLINE Then
         Let msg = msg & "A conexão está offline. "
      End If
      
      If dwflags And INTERNET_CONNECTION_MODEM_BUSY Then
         Let msg = msg & "O sistema de Modem local está ocupado com uma conexão non-Internet. "
      End If
      
      If dwflags And INTERNET_RAS_INSTALLED Then
         Let msg = msg & "Serviço de Acesso Remoto instalado neste sistema."
      End If
      
   Else
    
      Let msg = "Não conectado a Internet agora."
      
   End If
   
   Let GetNetConnectString = msg
End Function


Tags: VBA, Tips, Network, Connection, Type, code, network, DLL, wininet.dll

VBA Excel - Definindo o tipo de Gráfico - Change Chart Type.

Inline image 2


O tipo de gráfico utilizado em uma planilha pode ser definido pelo usuário que estiver utilizando um MIS. Deixá-lo escolher o tipo pode tornar sua experiência mais enriquecedora do ponto de vista da análise.

Essa funcionalidade também fica bem quando utilizada em Dashboards Dinâmicos.

Apply custom chart type
Change Chart Type
Change Default Chart Type
Change Excel Chart Plotarea Color Through VBA
Changing SeriesCollection Values for Line Chart
Changing a Chart Title Using VBA in Excel
Creating Charts in Microsoft Office Excel using Visual Basic
Dynamic and Interactive Charts
Excel Charts
Excel Charts & Charting Tips
Excel Charts and Graphs
Getting Started with VBA in Excel
Microsoft Excel Chart Types
Quick Excel Chart VBA Example
Setting the Default Chart Type in Microsoft Excel
Using VBA to change Chart Type
VBA Chart
VBA in Excel Charting

No momento em que o gráfico estiver ativo (com foco nele chart.setfocus - O gráfico fica ativo se o usuário o selecionou ou se foi ativado com o método Activate), utilize a propriedade ActiveChart para fazer referência ao mesmo. 

Abaixo o código demonstra como ativar o primeiro gráfico, definindo em seguida, o título e o tipo deste.
Charts(1).Activate


With ActiveChart

    Let .Type = xlLine


       Let 
.HasTitle = True


       Let 
.ChartTitle.Text = "Vendas de Janeiro"
End With

Pode colocar diversos tipos de gráficos dentro de um combobox e deixar o usuário escolhê-los a partir desta lista. Ao manipular o evento Change da caixa de combinação (combobox) esta terá o código abaixo. Esteja ciente de que, neste caso, por estar usando dados externos, deve tornar o objeto ChartData Ativo ao acessá-lo. Após mudar o nome da série e o valor (como no exemplo), o objeto gráfico deve ser atualizado para mostrar as alterações.

Private Sub ComboBox1_Change()

    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             05.04.2011 - 10:25.   bernardess@gmail.com     http://inanyplace.blogspot.com/
    ' Application: XtractDashboard®.

    ' .


    Dim salesChart As Chart
    Dim chartWorkSheet As Excel.Worksheet
    
    ' O gráfico. (O primeiro no ComboBox.)
    Set salesChart = ActiveDocument.InlineShapes(2).Chart
        
    ' Ativa os dados antes de acessar o workbook.
    salesChart.ChartData.Activate

    ' Obtém a primeira worksheet.
    Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)
    
    '  Escolhe a série baseada na opção do ComboBox.
    Select Case ComboBox1.Value
        Case "ABL1"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("B1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$B$2:$B$5"
            
        Case "ABL2"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("C1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$C$2:$C$5"
            
        Case "ABL3"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("D1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$D$2:$D$5"
            
        Case "ABL4"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("E1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$E$2:$E$5"
            
    End Select
    
    ' Atualizao o gráfico, tornando as mudanças visíveis.
    salesChart.Refresh
    
    ' Minimiza o Excel.
    Let chartWorkSheet.Application.WindowState = xlMinimized
End Sub


    Dim salesChart As Chart


    Dim chartWorkSheet As Excel.Worksheet

    ' O gráfico. (O primeiro no ComboBox.)


    Set salesChart = ActiveDocument.InlineShapes(2).Chart

    ' Ativa os dados antes de acessar o workbook.


    salesChart.ChartData.Activate


    ' Obtém a primeira worksheet.
    Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)
    
    '  Escolhe a série baseada na opção do ComboBox.
    Select Case ComboBox1.Value
        Case "ABL1"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("B1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$B$2:$B$5"
            
        Case "ABL2"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("C1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$C$2:$C$5"
            
        Case "ABL3"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("D1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$D$2:$D$5"
            
        Case "ABL4"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("E1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$E$2:$E$5"
            
    End Select
    
    ' Atualizao o gráfico, tornando as mudanças visíveis.
    salesChart.Refresh
    
    ' Minimiza o Excel.
    Let chartWorkSheet.Application.WindowState = xlMinimized
End Sub



    ' Obtém a primeira worksheet.


    Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)

    '  Escolhe a série baseada na opção do ComboBox.


    Select Case ComboBox1.Value


        Case "ABL1"


            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("B1")


            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$B$2:$B$5"

        Case "ABL2"


            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("C1")


            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$C$2:$C$5"

        Case "ABL3"


            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("D1")


            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$D$2:$D$5"

        Case "ABL4"


            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("E1")

            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$E$2:$E$5"

    End Select

    ' Atualizao o gráfico, tornando as mudanças visíveis.


    salesChart.Refresh

    ' Minimiza o Excel.


    Let chartWorkSheet.Application.WindowState = xlMinimized


End Sub


ReferênciaMicrosoft MSDN



Tags: VBA, Office, Excel, chart, type, gráfico, tipo


VBA Access - Comparação de tipos de dados.

Inline image 1

Usar o tipo certo de definição de dados é importantíssimo, nada melhor do que detectar o tipo antes de desenvolver nossas soluções. Seguem referências da própria Microsoft:

Comparação de tipos de dados
O mecanismo de banco de dados do MS Access reconhece diversos conjuntos de tipos de dados que se sobrepõem. No MS Access, existem quatro contextos diferentes nos quais talvez seja necessário especificar um tipo de dados: no modo de design da tabela (modo Design: uma janela que mostra o design destes objetos de banco de dados: tabelas, consultas, formulários, relatórios, macros e páginas de acesso a dados. No modo Design, você pode criar novos objetos de banco de dados e modificar o design dos existentes.), na caixa de diálogo Parâmetros da Consulta, no Visual Basic e no modo SQL em uma consulta.

A tabela a seguir compara os cinco conjuntos de tipos de dados correspondentes a cada contexto. A primeira coluna lista as configurações da propriedade Type disponíveis no modo de design da tabela e as cinco configurações da propriedade FieldSize para o tipo de dados Número (tipo de dados Número: em um banco de dados do MS Access, um tipo de dados de campo para dados numéricos que serão usados em cálculos matemáticos. 

Use o tipo de dados Moeda, entretanto, para exibir valores de unidade monetária.). A segunda coluna lista os tipos de dados de parâmetro de consulta disponíveis para estruturar consultas parâmetro (consulta parâmetro: uma consulta na qual um usuário especifica de maneira interativa um ou mais valores de critérios. Uma consulta parâmetro não é um tipo separado de consulta; na verdade, aumenta a flexibilidade de uma consulta.) na caixa de diálogo Parâmetros da consulta

A terceira coluna lista os tipos de dados correspondentes do Visual Basic. A quarta coluna lista tipos de dados do objeto Field (DAO). A quinta coluna lista os tipos de dados SQL do mecanismo de banco de dados do  MS Access  correspondentes definidos por esse mecanismo, juntamente com os seus sinônimos válidos.
Campos de tabela Parâmetros da consultaVisual BasicConstantes da propriedade Tipo de dados ADO SQL do mecanismo de banco de dados do Microsoft Access e sinônimos
Sem suporteBinárioSem suporte adBinaryBINARY (consulte Observações) (Sinônimo: VARBINARY)
Sim/NãoSim/NãoBoolean (Booleano: uma expressão que pode ser avaliada como verdadeira (diferente de zero) ou falsa (0). Você pode usar as palavras-chave Verdadeiro e Falso para fornecer os valores de -1 e 0, respectivamente. O tipo de dados de campo Sim/Não é booleano e tem o valor de -1 para Sim.) adBooleanBOOLEAN (Sinônimos: BIT, LOGICAL, LOGICAL1, YESNO)
Número (Tamanho do campo = Byte) ByteByte (tipo de dados Byte: um tipo de dados do banco de dados do Access usado para armazenar números inteiros positivos pequenos no intervalo de 0 a 255.) adUnsignedTinyIntBYTE (Sinônimo: INTEGER1)
AutoNumeração (Tamanho do campo=
Inteiro longo)
Inteiro longoLong (tipo de dados Longo: um tipo de dados básico que contém inteiros grandes. A variável Long é armazenada como um número de 32 bits no intervalo de - 2.147.483.648 a 2.147.483.647.) adIntegerCOUNTER (Sinônimo: AUTOINCREMENT)
Moeda MoedaCurrency (tipo de dados Unidade Monetária: em um banco de dados do Microsoft Access, um tipo de dados útil para cálculos que envolvam moeda ou para cálculos de ponto fixo nos quais a precisão é extremamente importante.) adCurrencyCURRENCY (Sinônimo: MONEY)
Data/hora Data/horaDate (tipo de dados Data/Hora: tipo de dados do banco de dados do Access usado para armazenar informações de data e hora.) adDateDATETIME (Sinônimos: DATE, TIME, TIMESTAMP)
Número (Tamanho do campo = Duplo) DuploDouble (tipo de dados Duplo: um tipo de dados básico que contém números de ponto flutuante de dupla precisão. É armazenado como um número de 64 bits e seu intervalo de valores vai de aproximadamente -1,797E308 a -4,940E-324 (negativo), de 4,94E-324 a 1,797E308 (positivo) e 0.) adDoubleDOUBLE (Sinônimos: FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC)
AutoNumeração/GUID
(Tamanho do campo= Código de replicação)
Código de replicaçãoSem suporteadGUID GUID
Número (Tamanho do campo = Inteiro longo) Inteiro longoLongadIntegerLONG (Consulte Observações) (Sinônimos: INT, INTEGER, INTEGER4)
Objeto OLEObjeto OLEString (tipo de dados Seqüência: um tipo de dados básico que contém caracteres, um caractere por 2 bytes. Uma seqüência de comprimento fixo pode conter de 1 a 64 K de caracteres; uma seqüência de comprimento variável pode conter de 1 a 2 bilhões.) adLongVarBinaryLONGBINARY (Sinônimos: GENERAL, OLEOBJECT)
Memo MemoStringadLongVarWCharLONGTEXT (Sinônimos: LONGCHAR, MEMO, NOTE)
Número (Tamanho do campo = Simples) SimplesSingle (tipo de dados Simples: um tipo de dados que armazena variáveis de ponto flutuante de dupla precisão como 32 bits (4 bytes) no intervalo de -3,402823E38 a -1,01298E-45 para valores negativos e 1,401298E-45 a 3,402823E38 para valores positivos.) adSingleSINGLE (Sinônimos: FLOAT4, IEEESINGLE, REAL)
Número (Tamanho do campo = Inteiro) InteiroInteger (tipo de dados Inteiro: um tipo de dados fundamental que contém números inteiros. Uma variável Integer é armazenada como um número de 16 bits (2 bytes) no intervalo de -32.768 a 32.767.) adSmallIntSHORT (consulte Observações) (Sinônimos: INTEGER2, SMALLINT)
Texto Texto StringadVarWCharTEXT (Sinônimos: ALPHANUMERIC, CHAR, CHARACTER, STRING, VARCHAR)
HiperlinkMemoStringadLongVarWChar LONGTEXT (Sinônimos: LONGCHAR, MEMO, NOTE)
Sem suporteValorVariant (tipo de dados Variante: o tipo de dados padrão para variáveis que não têm caracteres de declaração de tipo quando uma instrução Deftipo não está sendo usada. Um Variante pode armazenar dados numéricos, seqüências de caracteres, data/hora, valores Nulo ou dados Vazio.) adVariantVALUE (consulte Observações)
  Observações
    • MS Access propriamente não utiliza o tipo de dados BINARY. Esse tipo é reconhecido somente para utilização em consultas a tabelas vinculadas provenientes de outros produtos de banco de dados que oferecem suporte ao tipo de dados BINARY.

    • O tipo de dados INTEGER no SQL do mecanismo de banco de dados do MS Access não corresponde ao tipo de dados Integer para campos de tabela, parâmetros de consulta ou Visual Basic. Em vez disso, no SQL, o tipo de dados INTEGER corresponde a um tipo de dados Long Integer para campos de tabela e parâmetros de consulta e a um tipo de dados Long no Visual Basic.

    • A palavra reservada VALUE não representa um tipo de dados definido pelo mecanismo de banco de dados do Access. Entretanto, em consultas do Microsoft Access ou do SQL, a palavra reservada VALUE pode ser considerada um sinônimo válido para o tipo de dados Variant do Visual Basic.

    • Se você estiver definindo o tipo de dados para um objeto DAO (DAO (Objetos de Acesso a Dados): uma interface de acesso a dados que se comunica com o Microsoft Jet e com fontes de dados compatíveis com ODBC para se conectar, recuperar, manipular e atualizar dados e a estrutura do banco de dados.) em código do Visual Basic, terá que configurar a propriedade Type do objeto.



Reference:


TagsVBA, Access, SQL, Visual Basic, DAO, Type, Tipo, Variables, data, dados, ODBC, 

diHITT - Notícias