Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

Views

VBA Excel - Acrescentando registro em MS Access.

Para acrescentar um registro a uma base de dados MS Access, precisa assegurar-se de que o seu MS Excel está configurado com a referência a biblioteca DAO:
Microsoft ActiveX Data Objects 6.0 Library c:\Program Files\Common Files\System\ado\msado15.dll Microsoft DAO 3.6 Object Library c:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll
 
Em seguida execute uma inserção do usuário, com horário e demais dados relevantes (você mesmo deve definir o que acha ser mais apropriado):
Function InsertUserInapplication(nUser As String) ' Author:                          Date:                       Contact:                           URL: ' André Bernardes             22/03/2010 11:56     bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/ ' Insere o nome do usuário, indicando que este está plugado a aplicação e ativo nela.     Dim nSQL As String     ' Sample:     'INSERT INTO tbl_Connected ( ID, [TimeStamp] )     'SELECT '01101304I' AS IDentification, #3/22/2010 14:32:0# AS nTime     'FROM tbl_Sys_Add;     Let nSQL = "INSERT INTO tbl_Connected (ID, [TimeStamp]) " & _                      "SELECT '" & nUser & "' AS IDentification, " & _                      "#" & nowUserTime & "# AS nTime " & _                      "FROM tbl_Sys_Add"     Call StatusUser_AccessData(pth_Base, dbs_Base, nSQL) End Function
Agora poderá efetuar consultas antes de abrir a planilha para saber se alguém está utilizando sua aplicação. Quando o usuário terminar de utilizar a planilha, deve deletar o usuário da tabela, e/ou apenas desabilitá-lo em um campo apropriado: Function DeleteUserInapplication(nUser As String) ' Author:                          Date:                        Contact:                          URL: ' André Bernardes             22/03/2010 14:06     bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/ ' Deleta o nome do usuário ativo, que está plugado na aplicação.     Dim nSQL As String     Let nSQL = "UPDATE tbl_Connected " & _                      "SET tbl_Connected.TimesOut = #" & Now() & "#, " & _                      "tbl_Connected.Online = 0 " & _                      "WHERE (((tbl_Connected.ID)= '" & nUser & "' ))"     Call StatusUser_AccessData(pth_Base, dbs_Base, nSQL) End Function
 
Acessando a base de dados (esta configurado para a versão do Office 2007)

Sub StatusUser_AccessData (nPath As String, nDataBaseName As String, nSQL As String)     ' Author:                           Date:                     Contact:                           URL:     ' André Bernardes             22/03/2010 12:03    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/     ' Inserindo o usuário ativo na aplicação neste momento.

    Dim stDB As String     Dim cnt As New ADODB.Connection

    Let stDB = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & nPath & nDataBaseName

    cnt.Open stDB     cnt.Execute nSQL

    'Set stDB = Nothing     Set cnt = Nothing End Sub
 

InAnyPlace03.gif

VBA Tips - Tabela ASCII - American Standard Code for Information Interchange, EBCDIC, UNICODE

VBA Tips - Tabela ASCII - American Standard Code for Information Interchange, EBCDIC, UNICODE





Consulte este link com os dados mais atualizados. 


References:

Tags: ASCII, Tabela ASCII, American Standard Code for Information Interchange, 8 bits, 7 bits, EBCDIC, UNICODE







Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com
✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

ODBC - O que é ? What´s ODBC ?

Veja também:| Blog Office VBA | Blog Excel | Blog Access    |
 
Introdução
O ODBC (Open Database Connectivity) é um padrão aberto de API (Application Programming Interface) para acesso a Banco de Dados.

Em 1992, a Microsoft contratou a Simba para construir o primeiro driver ODBC do mundo; SIMBA.DLL, e então os acessos padronizados à bases de dados comuns nasceu.

Ao usar declarações (statements) ODBC numa aplicação ou sistema, poderá acessar arquivos em diferentes bases de dados. Além do software ODBC, um módulo separado ou driver é necessário para cada banco de dados acessado, geralmente este é distribuido pelos desenvolvedores do Banco de Dados (Oracle, DB2, Informix, SQL Server, My SQL, Paradox, etc).

História
A Microsoft introduziu este padrão 1992. O ODBC foi um padrão desenvolvido com o propósito de unificar o acesso às bases de dados SQL.

Seguindo o sucesso do ODBC, A Microsoft introduziu o OLE DB que era um padrão mais amplo de acesso aos dados. Este ia além dos bancos de dados SQL, estendendo-se a qualquer fonte de dados que fornecesse dados em formato tabular.

O plano da Microsoft era o de que o OLE DB suplantaria o ODBC como o padrão mais comum de acesso a dados. Mais recentemente, a Microsoft introduziu o padrão de acesso a dados ADO.

O ADO deveria ir ainda mais longe do que o OLE DB. devido ao ADO ser orientado a objeto, no entanto, mesmo com as exaustivas tentativas  da Microsoft para substituir o padrão ODBC com o que considerava "melhores" alternativas, o ODBC continua a ser o padrão de acesso a dados de fontes  SQL.

De fato, hoje o padrão ODBC é mais comum do que o OLE DB e do que o ADO porque o ODBC é mais amplamente suportado (incluindo suporte da Oracle e IBM), interpolando plataformas padrões de acesso a dados.


Visão Geral
O ODBC, de fato, tornou-se o padrão para bases de dados relacionais e não relacionais (SGBD). A Simba trabalhou em estreita colaboração com a Microsoft para co-desenvolver o padrão ODBC no início dos anos 90. O padrão ODBC permite o máximo de interoperabilidade propiciando assim que os desenvolvedores de aplicativos escrevamr um único pedido de acesso a fontes de dados para diferentes fornecedores. ODBC é baseado no Call-Level Interface (CLI) especificações do Open Group e ISO / IEC para APIs de banco de dados e usa Structured Query Language (SQL) como sua linguagem de acesso a banco de dados.
Arquitetura ODBC odbcjdbcst.gif
Ativando aplicação ODBC Trata-se de qualquer aplicação compatível com ODBC, como o Microsoft Excel, o Crystal Reports, Microsoft Access, ou algo semelhante (planilha, processador de texto, acesso a dados e Retrievable Tool, etc.) O aplicativo ODBC habilitado executa o processamento, passando instruções SQL recebendo os do driver gerenciador de ODBC. ODBC Driver Manager O gerenciador de Drivers ODBC carrega e descarrega drivers ODBC no nome de um aplicativo. A plataforma Windows vem com um gerenciador de driver padrão, enquanto plataformas não-Windows têm a opção de usar um open source ODBC Driver Manager como o unixODBC e iODBC ou um gestor de controladores ODBC comercial. O gerenciador de de Drivers ODBC processa chamadas de função ODBC, ou passa-as para um driver ODBC resolvendo quaisquer conflitos de versão do ODBC. Driver ODBC
O driver ODBC processa as chamadas de função ao ODBC, submete pedidos SQL para uma fonte de dados específica e retorna resultados para a aplicação. O driver ODBC pode também modificar uma solicitação  da aplicação para que o pedido respeita a sintaxe suportada pelo banco de dados associado. Comercial drivers ODBC, ou uma estrutura para criar facilmente um driver ODBC, estão disponíveis de fabricantes como Simba Technologies.

Fonte de Dados
A fonte de dados consiste em dados que o usuário deseja acessar e seu sistema de gerenciamento de banco de dados. InAnyPlace03.gif

VBA Excel - Formatação de Data e Hora - Format Date and Time in MS Excel.

Quase todos os projetos e aplicações que utilizam o MS Excel envolvem Datas e Horários de alguma forma. Um projeto talvez precise determinar o número de dias entre duas datas, ou determinar em que dia da semana cai lá no futuro; uma planilha de projetos talvez necessite determinar o tempo decorrido entre o início e o final das etapas, ou determinar quantas horas são horas extras.

Antes de poder tirar partido do poder de algumas funções de Data e Hora, precisa entender como o MS Excel armazena datas e horas. Independentemente de como tenha formatado uma célula para exibir uma data ou hora, o MS Excel sempre as armazenará da mesma forma.

Como o MS Excel armazena as Datas e Horas:

O MS Excel armazena datas e horas, como um número que representa o número de dias desde 0-Jan-1900, mais uma parte fracionária de um dia de 24 horas: ddddd.tttttt. Isso é chamado de Serial Date (data de série) ou de Serial Date-Time (Série de Data-Tempo).

Datas
A porção inteira do número, ddddd, representa o número de dias desde 0-Jan-1900. Por exemplo, a data 19-Jan-2000 é armazenado como 36.544, 36.544 dias já se passaram desde 0-Jan-1900. O número 1 representa 1-Jan-1900. Entenda-se que o número 0 não representa 31-Dez-1899. Se usar a função mês com a data 0, retornará Janeiro e não Dezembro. Além disso, a função retornará ANO como 1900 e não como 1899.

Na verdade, esse número é maior do que o número real de dias. Isso ocorre porque o  MS Excel comporta-se como se a data de 29-Fev-1900 tivesse existido. O ano de 1900 não foi um ano bissexto (ano de 2000 é um ano bissexto). No  MS Excel, um dia após 28-Fev-1900 é 29-Fev-1900. Na realidade, o dia depois de 28-Fev-1900 é 01-Mar-1900. Isso não é um Bug (erro), na verdade, foi desenhado assim. O  MS Excel funciona dessa maneira porque este realmente era um erro no Lotus 123. Quando o  MS Excel foi desenvolvido e introduzido no mercado, o Lotus 123 tinha quase todo o mercado de software de planilha eletrônica. A Microsoft decidiu continuar com o bug do Lotus, a fim de torná-lo totalmente compatível. Os usuários que passaram do Lotus 123 para o  MS Excel não tiveram de fazer quaisquer ajustes e/ou alterações em seus dados. Enquanto todas as datas forem até 01-Mar-1900, esta não deve ser de nenhuma preocupação.


No MS Excel temos uma função que retorna um valor formatado...Veremos aqui algumas formas para retornar a formatação de Datas:

        Format ( expressão, [ formato, [ firstdayofweek, [firstweekofyear] ] ] )
expressão é o valor para o formato.


formato é opcional. É o formato para aplicar a expressão. Podemos definir nosso próprio formato ou usar um dos formatos nomeados que o MS Excel tem pré-definido, tais como: General Date   Exibe a data com base nas configurações do seu sistema. Long Date       Mostra a data com base no Long Date configurado no sistema Medium Date  Exibe a data com base no Medium Date configurado no sistema Short Date     Mostra a data com base no Short Date configurado no sistema Long Time     Exibe a data com base no Long Time configurado no sistema Medium Time  Mostra a data com base no Medium Time configurado no sistema Short Time     Exibe a data com base no Short Time configurado no sistema firstdayofweek [primeirodiadasemana] é opcional. É um valor que especifica o primeiro dia da semana. Se este parâmetro for omitido, a função Format assume que o Domingo é o primeiro dia da semana. Este parâmetro pode ser um dos seguintes valores: Constante      Valor     Explanação vbUseSystem     0        Usa a configuração da API NLS. VbSunday          1        Domingo (É o default, se o parâmetro for omitido). vbMonday           2        Segunda-feira. vbTuesday          3        Terça-feira. vbWednesday     4        Quarta-feira. vbThursday         5        Quinta-feira. vbFriday             6        Sexta-feira. vbSaturday         7        Sábado. firstweekofyear [primeirasemanadoano] é opcional. É um valor que especifica a primeira semana do ano. Se este parâmetro for omitido, a função Format assume que a semana que contém 1 de janeiro é a primeira semana do ano. Este parâmetro pode ser um dos seguintes valores: Constante      Valor     Explanação vbUseSystem     0        Usa a configuração da API NLS. vbFirstJan1         1        A semana que contém 1º de Janeiro. vbFirstFourDays  2        A primeira semana que contiver 4 dias no Ano. vbFirstFullWeek  3        A primeira semana cheia do Ano. Aplica-se ao: MS Office Excel 2007 MS Office Excel 2003 MS Office Excel XP MS Office Excel 2000 Exemplo: Format (#05/02/2007#, "Short Date") Retornará: '05/02/2007' Format (#05/02/2007#, "Long Date") Retornará: 'Februry 05, 2007' Format (#05/02/2007#, "yyyy/mm/dd") Retornará: '2007/05/02' Codificação VBA: Function TitleCaption()         ' Author:                            Date:                       Contact:                             URL:         ' André Bernardes             23/03/2010 09:17    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/         ' Atualiza o título no FORM.         ' Listening: GreensLeeves - Mozart         Let Me.Caption = ":. " & Format (Now(), "Long Date") & " - " & Right (Now(), 8) End Function Algumas Funções com Datas e Horas: Overtime Hours In Timesheets Quarter, Determining From Date Rounding Times Thanksgiving, Calculation Of Date Times, Adding And Subtracting Times And Working Hours, Between Two Dates Times, Quick Entry Times, Rounding Timesheets, Working With Regular And Overtime Hours Time Zones

Week, First Monday Of

Week Numbers, Excel and ISO Weekday, Counting Between Dates

Weekday, First And Last Of Month Weekday, Nth Day Of Month (VBA) Weekday, Nth Day Of Month (Formula) Weekdays, Creating Series Of Weeks, Difference Between Dates Year, First Monday Of Years, Entering Two Digit Years

Date Intervals, Formulas For Dates, Adding And Subtracting Dates,  Differences Between  Dates, Distributing Across Months Or Years Dates, Excel Serial Format Dates, Finding With VBA .Find Method Dates, Quick Entry Dates, Two Digit Years Day Of Week, Nth Day Of Week (VBA) Day Of Week, Nth Day Of Week In A Month (Formula) 

Day Of Week, Returning Nth Day Of Week In A Year (Formula)

Days In Month, First And Last Days In Month DATEDIF Function Degrees, Minutes, And Seconds Easter, Calculation Of Date Holidays, Calculation Of Dates Julian Dates

Last Weekday Of Month Leap Year, Determining

Age, Calculating Birthdays And Age

Holidays

Julian Dates

Latitude And Longitude 

Overtime Hours And Timesheets

Time Zones In VBA

VBA Procedures For Dates And Times

Week Numbers

Worksheet Functions For Dates And Times

Adding Months And Years

The DATEDIF Function

Date Intervals

Dates And Times

Date And Time Entry

Date And Time Arithmetic

Distributing Dates Over Intervals

VBA: Função que retorna idade.

|Blog Office VBA |Blog Excel |Blog Access |
 
Dashboards & Scorecards
 

Como retornar a idade a partir da data do Nascimento?
Public Function AnosdeIdade(ByVal datBirthDate As Date) As Integer
On Error GoTo PROC_ERR

Dim intYears As Integer

Let intYears = Year (Now) - Year (datBirthDate)

If DateSerial(Year(Now), Month(datBirthDate), Day(datBirthDate)) > Now Then Let intYears = intYears - 1 ' Subtract a year if birthday hasn't arrived this year
End If

Let AnosdeIdade = intYears

PROC_EXIT:
Exit Function

PROC_ERR:
MsgBox "Erro: Nº" & Err.Number & ". " & Err.Description, , "AnosdeIdade"

Resume PROC_EXIT End Function
Dash-006.jpg  Dash-018.jpg  Dash-028.jpg

VBA Excel - Deletando linhas - 09 - Deletando linhas Duplicadas


header2.png

Esta função eliminará todas as linhas duplicadas em um intervalo.

Para usá-la, selecione um intervalo de uma única coluna de células, compreendendo o intervalo de linhas a partir da qual são duplicados a ser excluído, por exemplo, C2:C99. Os valores da coluna selecionada serão comparados para determinar se uma linha tem duplicatas.

Linhas inteiras não são comparadas umas contra as outras. Apenas a coluna selecionada é utilizada para comparação.

Quando forem encontrados valores duplicados na coluna, a primeira linha continua, e todas as linhas subseqüentes são excluídas.


Public Sub DeleteDuplicateRows() 

Dim R As Long  

Dim N As Long 

Dim V As Variant 

Dim Rng As Range 




On Error GoTo EndMacro 

Let Application.ScreenUpdating = False



Let Application.Calculation = xlCalculationManual 
Set Rng = Application.Intersect(ActiveSheet.UsedRange, _                      ActiveSheet.Columns(ActiveCell.Column)) 
Let Application.StatusBar = "Processando as linhas: " & Format(Rng.Row, "#,##0") 

Let N = 0 
For R = Rng.Rows.Count To 2 Step -1 
If R Mod 500 = 0 Then     
Let Application.StatusBar = "Processando as linhas: " & Format (R,  "#,##0") 
End If 

Let V = Rng.Cells(R, 1).Value 

If V = vbNullString Then     
If Application.WorksheetFunction.CountIf(Rng.Columns(1),  vbNullString) > 1 Then         Rng.Rows(R).EntireRow.Delete        
Let 
N = N + 1     
End If 
Else     
If Application.WorksheetFunction.CountIf(Rng.Columns(1), V) > 1 Then         Rng.Rows(R).EntireRow.Delete         
Let 
N = N + 1     
End If 
End If 
Next R 

EndMacro: 
Let Application.StatusBar = False 
Let Application.ScreenUpdating = True 
Let Application.Calculation = xlCalculationAutomatic 
MsgBox "Linhas Duplicadas foram Deletadas: " & CStr(N) 

End Sub
 

TagsExcel, Column, Coluna, Delete, Linha, Plan, Planilhas, Report, Row,  rows,worksheet, lines



André Luiz Bernardes
A&A® - In Any Place.

VBA Excel - Como fechar as planilhas ou pastas do MS Excel com VBA

Veja também: | Blog Office VBA | Blog Excel | Blog Access    |
Existem algumas formas de fecharmos a 
aplicação MS Excel que estivermos 
utilizando no momento.

Seguem alguns exemplos:

 Fechará o WorkBook que estiver ativo...
ActiveWorkbook.Close savechanges:=False 'ou True

Fechará a planilha Bernardes.xls...
Workbooks("Bernardes.xls").Close savechanges:=False 'ou True
 
Fechará o WorkBook cujo o código estiver executando... 
ThisWorkbook.Close savechanges:=False 'ou True

Tenha cuidado com esta opção, pois esta fechará a planilha...
 Application.Quit

VBA Excel - Dê uma pausa na sua aplicação.


| Blog Office VBA | Blog Excel | Blog Access    | Caso deseje implementar algum efeito em um formulário, planilha e/ou procedimento poderá utilizar a linha abaixo:
Application.Wait ("00:00:02")
Caso deseje que a pausa seja efetuada em determinado momento ou hora poderá melhorar o código abaixo:
Application.Wait (Now() + "00:00:02")
Pequenas dicas, mas com criatividade, pode lhe render grandes soluções. Até mais!

Excel - 4 Modos de aumentar o tempo da velocidade dos cálculos nas suas planilhas.

Quando nossas planilhas criadas no MS Excel calculam (o que é muito comum), em geral, efetuando referências a células e a operações de cálculo, estas comportam-se como verdadeiros parasitas que se apropriam do desempenho principal da planilha como um todo.

Fórmulas razoável e até grandes quantidades de dados não costumam tornar as coisas devagar. Fórmulas complexas e referências repetitivas são os verdadeiros culpados. Aqui estão algumas orientações básicas que devem ajudá-lo a evitar estrangulamentos cálculo:
- Evite fórmulas complexas de matriz. Utilize mais as linhas e colunas para armazenar valores intermédios e utilize menos os cálculos complexos. - Reduza o número de referências em cada uma fórmula para o mínimo. Fórmulas copiadas são notórias para repetir referências e cálculos. Mova todos os necessários cálculos repetidos para uma única célula a qual fará referências. - Sempre utilize a função do modo mais eficiente possível: Classifique os dados antes de realizar pesquisas; minimize o número de células para as funções SOMA e SUMIF; Substitua uma matriz lenta por uma função definida pelo usuário (desenvolvida em VBA), e assim por diante. - Se possível, evite funções voláteis. O MS Excel recalcula estas funções em cada novo cálculo, mesmo que nada tenha mudado. As funções voláteis (RAND (), NOW (), HOJE (), e assim por diante) podem retardar as coisas.
?ui=2&view=att&th=1273db8968a96d1d&attid=0.1&disp=attd&realattid=ii_1273db8968a96d1d&zw

Utilize a excelência em ferramentas de análise!

Várias empresas estão cercadas de dados de diversas origens distintas e apesar de terem tantos dados à disposição não conseguem obter as necessárias informações para tomar as suas mais relevantes decisões. Não raro seus KPIs (Indicadores de Performance) não estão alinhados com as estratégias da empresa.

A diversidade de bases de dados nas quais as informações que deseja podem estar são muito variáveis. Mesmo que precise consolidar tais informações em Dashboards e Scorecards, precisará reuní-los de modo coerente e sucinto.

Os Balanced Scorecards oferecem aos executivos as ferramentas que necessitam para alcançar o sucesso na obtenção de suas informações. Esta importante ferramenta traduz a missão e a estratégia da sua empresa num conjunto abrangente de medidas de desempenho que serve como base para o sistema de medição e gestão estratégica. Perseguindo os objetivos financeiros, incluindo os vetores de desempenho desses objetivos.

O grande dilema é: Mesmo estando cercado por dados de todas as origens, como posso  obter INFORMAÇÕES relevantes para tomar minhas decisões?

Os conceitos e as regras de negócio precisam ser aplicados aos dados de modo a atender a empresa como um TODO e não apenas a alguns departamentos e países.

Os resultados mais comuns são INFORMAÇÕES IMPRECISAS, números que não coicidem durante as reuniões, findando pelo adiamento de decisões altamente relevantes.

Para que a Direção da empresa possa tomar decisões abalizadas, torna-se imprescindível que o conteúdo seja coeso, sintético e direcionado para atender o foco das reuniões.

O Management Information System é um Sistema de Informação Gerencial, utilizado por toda a organização, consiste na rede de canais de comunicação da organização permeando todas as estruturas executivas. É composto por todos os componentes que recolhem, manipulam e disseminam as informações. Nele estão inclusos hardware, software, pessoas, sistemas de telecomunicação, e os dados propriamente ditos.

Não é menos verdade que em muitas reuniões todos estejam munidos de INFORMAÇÕES totalmente irrelevantes. Têm acesso a dados de A a Z, completamente desprovidos de conteúdo. Não contém abrangência nem diversificação, que lhes propiciem dinamicidade na análise.



Related Posts Plugin for WordPress, Blogger...

Vitrine

diHITT - Notícias