|
Clube
Visual Basic -
Dicas Diversas
Selecione
o assunto desejado:
Banco
de Dados
|
Criando uma tabela a partir de outra utilizando
ADO e instruções SQL.
Utilizando
o método Open do Recordset. Exemplo:
Dim db As New ADODB.Connection
Dim tbl As New ADODB.Recordset
db.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\Caminho\BD1.mdb;Jet
OLEDB"
tbl.Open "SELECT * INTO NovaTabela FROM Tabela",
db
Usando o método execute do objeto Connection. Exemplo:
Dim db As New ADODB.Connection
db.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=C:\Caminho\BD1.mdb;Jet
OLEDB"
db.Execute "SELECT * INTO NovaTabela FROM Tabela"
db.Close |
|
Manipulando
a propriedade DatabaseName de um DataControl em tempo de execução.
Para
obter este resultado, altere normalmente a propriedade DatabaseName,
sendo que, após a alteração desta propriedade utilize o método
Refresh. Ex:
Data1.DatabaseName = App.Path & "\arquivo.mdb"
Data1.Refresh
|
|
Como
armazenar fotos na base de dados em um campo OLE passando a
imagem de uma PictureBox?
Abaixo
seguem as funções que armazenam e lêem as imagens:
Public Sub GetPicture(f As Field, pic As Control)
Dim x() As Byte
Dim ff As Integer
Dim strArqTemp As String
strArqTemp = "c:\temp\pic.bmp"
ff = FreeFile
Open strArqTemp For Binary Access Write As ff
x() = f.GetChunk(0, f.FieldSize)
Put ff, , x()
Close ff
pic.Picture = LoadPicture(strArqTemp)
Kill strArqTemp
End Sub
Public Sub LetPicture(f As Field, pic As Control)
Dim x() As Byte
Dim n As Long
Dim ff As Integer
Dim strArqTemp As String
ff = FreeFile
strArqTemp = "c:\temp\pic.bmp"
SavePicture pic.Picture, strArqTemp
Open strArqTemp For Binary Access Read As ff
n = LOF(ff)
If n Then
ReDim x(n)
Get ff, , x()
f.AppendChunk x()
Close ff
End If
Kill strArqTemp
End Sub
Primeiro você terá que armazenar a imagem no banco de dados
no formato em que ele consiga reconhecer, pra isso use:
rec.AddNew
LetPicture rec("Figura"), Picture1
'rec("OutroCampo") = outrovalor...
rec.Update
Já para a leitura do registro use:
GetPicture
rec("Figura"), Picture1
onde rec("Figura") é o recordset que contém a figura. |
|
Acessando banco de dados via ADO protegido
por senha
Para
isso, usa-se a seguinte string:
Persist Security Info=False;Data Source=C:\Caminho\Meu.mdb;Jet
OLEDB:Database Password=minhasenha |
|
Listando as tabelas de um banco de dados
Private
Sub Command1_Click()
Dim cnn1 As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnn As String
Set cnn1 = New ADODB.Connection
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\northwind.mdb;"
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
Do Until rstSchema.EOF
List1.AddItem ("Table name: " & _ rstSchema!TABLE_NAME
&
vbCr & _ "Table type: " & rstSchema!TABLE_TYPE
& vbCr)
rstSchema.MoveNext
Loop
rstSchema.Close
cnn1.Close
End Sub
|
Protegendo
um banco de dados Access.
Para proteger seu banco de dados Access, proceda da seguinte
forma: acione a opção Security no menu Tools e em seguida
selecione Set Database Password informando a password escolhida.
Para acessar o banco de dados com VB, passe o valor da password
definida usando a palavra
chave "pwd" para o valor SOURCE do método OpenDatabase:
Dim db as Database
Dim Wkspc as WorkSpaces
Dim strPass as STRING
strPass = ";pwd=PASSWORD"
Set Wkspc = Workspaces(0)
Set db = Wkspc.OpenDatabase(DBName, False, False, strPass) |
|
Fechando objetos QueryDef
Quanto
estiver trabalhando com objetos QueryDef, ao abrí-los o DAO
carrega todos os QueryDefs existente no seu banco de dados
Access. Por exemplo, se você tiver 4 queryDefs (qryClientes,
qryPedidos, qryContatos e qryVendas) e quiser usar apenas
o qryClientes, faça o seguinte:
Dim qdClientes as QueryDef
Dim rsClientes as RecordSet
Set qdClientes= Db.QueryDefs("qryClientes")
qdClientes.Parameters![Codigo_do_Cliente]= 195
Set rsClientes= qdClientes.OpenRecordSet(dbReadOnly)
While not rsClientes.Eof
txtNomeDoCliente= rsClientes!NoneUsual
...........
rsClientes.MoveNext
Wend
rsClientes.Close '** Fecha e libera referências
set rsClientes=Nothing
qdClientes.Close
set qdClientes = Nothing
O problema é que o DAO apenas fecha o qdClientes, mas os outros
três QueryDefs (qryPedidos, qryContatos e qryVendas) permanecerão
abertos. Para resolver o problema, use a subrotina abaixo:
Public Sub FechaQry()
Dim qdGenerico as QueryDef
For each qdGenerico in Db.QueryDefs
qdGenerico.close '** Fecha e limpa
Set qdGenerico = Nothing
Next
End Sub
Agora faça uma chamada à subrotina FechaQry:
rsClientesustomer.Close
Set rsCustomer = Nothing
FechaQry |
Impressão
|
Imprimindo
direto para a impressora
Para
imprimir direto para a impressora, tarefa ideal no caso de
emissão de notas fiscais, a impressora deverá ser inicializada
através do comando Open e utilizar o Print para realizar a
impressão:
Open "Lpt1" For Output As #1
Desta
forma, o programador para enviar os
caracteres especias para imprimir condensado, saltar linhas,
etc... veja os exemplos a seguir:
Print #1, Chr(27) & "0" ' Muda o passo p/ 8
LPP
Print #1, Chr(15) ' Condensado
Print #1, "" ' Salta uma linha |
|
Selecionando a impressora a receber os
trabalhos da fila:
O
objeto Printer corresponde à impressora default, definida
no sistema, porém a coleção Printers corresponde à todas as
impressoras instaladas no sistema. Para selecionar uma impressora
específica você deve usar a propriedade hDC do objeto Printer,
conforme observamos a seguir:
Private Sub cmdImprimir_Click()
Dim ImpressoraPadrão as Printer, Nova_Impressora as Printer
CommonDialog1.ShowPrinter
Set ImpressoraPadrão = Printer
For Each Nova_Impressora in Printers
If Nova_Impressora.hDC = CommonDialog1.hDC Then
Set Printer = Nova_Impressora
End If
Next
Printer.Print ""
' Define a impressora para o controle RichTextBox à ser impresso
rtbPrint.SelPrint Printer.hDC
Printer.EndDoc
Set Printer = ImpressoraPadrão
End Sub
O código acima recebe uma impressora selecionada no controle
CommonDialog, define um objeto do tipo Printer com a impressora
defualt do sistema, troca a impressora padrão pela impressora
escolhida no CommonDilalog, imprime o texto escolhido e depois
retorna a impressora padrão para a definição original.
|
Funções
|
Função
para cópia de Arquivo
A
função FileCopy que permite a cópia de um arquivo. Segue abaixo
o exemplo da instrução:
FileCopy "C:\Caminho1\ArqOrigem.ext", "C:\Caminho2\ArqDestino.ext" |
|
Verificando
se existem formulário abertos
Para
tal procedimento, utilize a seguinte rotina
Private Sub Verifica_FormsAbertos()
Dim i As Form
For Each i In Forms
MsgBox "O formulário '" & i.Name & "'
esta aberto"
Next i
End Sub |
|
Abrindo
uma planilha Excel e movendo-se entre as células para capturar
valores.
Crie
uma automação OLE com o Excel, conforme mostra o código a
seguir:
Dim Excel As Object
Set Excel = CreateObject("Excel.Application.8")
With Excel
.Workbooks.Open filename:="C:\caminho\arquivo.xls"
.Visible = True
.Sheets("Plan1").Select
.Range("A1").Select
MsgBox .activecell.Value
.activecell.Value = 20
End With
Acima, executamos os seguintes passos:
- Selecionamos
a planilha Plan1 e a célula A1;
- Através
de um MsgBox, mostramos o valor na tela da célula selecionada;
- Em
seguida, com a propriedade Value da célula, alteramos
o conteúdo da célula ativa (no caso Plan1, A1).
|
|
Forçando
a digitação somente de caracteres maiusculos.
Isso
deverá ser realizado através do evento KeyPress:
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
|
|
Tornar
maiúsculas todas as letras de todos os controles de um Form:
Útil
para quem deseja adicionar em uma base de dados, informações
com apenas letras maiúsculas.
Coloque
o seguinte código em um módulo:
Sub
Caixa_Alta(oForm As Form)
Screen.MousePointer = vbHourglass
Dim A As Integer
For A = 1 To oForm.Controls.Count - 1
If TypeOf oForm.Controls(A) Is TextBox Then
oForm.Controls(A).Text = UCase(oForm.Controls(A).Text)
ElseIf TypeOf oForm.Controls(A) Is ComboBox Then
oForm.Controls(A).Text = UCase(oForm.Controls(A).Text)
End If
Next A
Screen.MousePointer = vbArrow
End Sub
Para
chamá-lo, digite:
Caixa_Alta
frmInsert
Onde
frmInsert é o nome do form onde você quer converter para maiúsculas. |
|
Impedir que um programa seja encerrado
com CTRL+ALT+DEL
Declara
o seguinte em um Módulo:
Public
Declare Function GetCurrentProcessId Lib _"kernel32"
() As Long
Public Declare Function GetCurrentProcess Lib _"kernel32"
() As Long
Public Declare Function RegisterServiceProcess _Lib "kernel32"
(ByVal dwProcessID As Long, _ByVal dwType As Long) As Long
Public Const RSP_SIMPLE_SERVICE As Long = 1
Public Const RSP_UNREGISTER_SERVICE As Long = 0
Crie
a seguinte Sub:
Public
Sub MakeMeService()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId()
reserv = RegisterServiceProcess(pid,RSP_SIMPLE_SERVICE)
End Sub
Depois
coloque o seguinte no FORM_LOAD:
Private
Form_Load()
MakeMeService
End Sub |
|
Verificando
se um CPF é válido:
Crie
essa função em Módulo BAS
Public
Function CheckCPF(CPF As String) As Boolean
Dim EVAR1 As Integer
Dim evar2 As Integer
Dim F As Integer
If Len(Trim(CPF)) <> 11 Then
CheckCPF = False
Exit Function
End If
EVAR1
= 0
For F = 1 To 9
EVAR1 = EVAR1 + Val(Mid(CPF, F, 1)) * (11 - F)
Next F
evar2 = 11 - (EVAR1 - (Int(EVAR1 / 11) * 11))
If evar2 = 10 Or evar2 = 11 Then evar2 = 0
If evar2 <> Val(Mid(CPF, 10, 1)) Then
CheckCPF = False
Exit Function
End If
EVAR1
= 0
For F = 1 To 10
EVAR1 = EVAR1 + Val(Mid(CPF, F, 1)) * (12 - F)
Next F
evar2 = 11 - (EVAR1 - (Int(EVAR1 / 11) * 11))
If evar2 = 10 Or evar2 = 11 Then evar2 = 0
If evar2 <> Val(Mid(CPF, 11, 1)) Then
CheckCPF = False
Exit Function
End
If
CheckCPF
= True
Para
chamá-la no form:
Sub
CPF_LostFocus()
If CheckCPF(CPF.Text) = False Then
MsgBox "CPF Inválido."
CPF.SetFocus
End IF |
|
Verificando a validade do número do cartão
de crédito
Esta
função checa a validade de um numero de cartão de credito,
retornando true caso este seja válido
Function
CheckCard(CCNumber As String) As Boolean
Dim Counter As Integer, TmpInt As Integer
Dim Answer As Integer
Counter = 1
TmpInt = 0
While Counter <= Len(CCNumber)
If IsEven(Len(CCNumber)) Then
TmpInt = Val(Mid$(CCNumber, Counter, 1))
If Not IsEven(Counter) Then
TmpInt = TmpInt * 2
If TmpInt > 9 Then TmpInt = TmpInt - 9
End If
Answer
= Answer + TmpInt
'Debug.Print Counter, TmpInt, Answer
Counter = Counter + 1
Else
TmpInt = Val(Mid$(CCNumber, Counter, 1))
If IsEven(Counter) Then
TmpInt = TmpInt * 2
If TmpInt > 9 Then TmpInt = TmpInt - 9
End If
Answer
= Answer + TmpInt
'Debug.Print Counter, TmpInt, Answer
Counter = Counter + 1
End If
Wend
Answer
= Answer Mod 10
If Answer = 0 Then CheckCard = True
End Function |
|
Fazendo a tecla <ENTER> funcionar
como a <TAB>
Como
fazer a tecla ENTER agir como um TAB para mudar de campo Form
Mude a propriedade KeyPreview do formulário para true. Coloque
o código a seguir para o evento KeyDown do form: If KeyCode
= vbKeyReturn then Sendkeys "{Tab}" |
Alterando atributos de arquivos
Quando um determinado programa tem relação de trabalho
com arquivos, em determinadas situações é preciso que o atributo
do mesmo seja modificado. Suponha que que está trabalhando com
um arquivo de dados muito importante. Para protejê-lo, quando
o programa não está em uso, você deve mudar o atributo do arquivo
para acesso do tipo read-only (apenas leitura). Fazendo isso,
o usuário não poderá deletá-lo acidentalmente. Quando o programa
iniciar outra vez, altere o atributo para o tipo de acesso requerido.
Veja
como utilizar a declaração SetAttr do Visual Basic:
SetAttr
Caminho_do_Arquivo , Atributos
O Caminho_do_Arquivo é a expessão que especifica o arquivo
a ter o atributo modificado, juntamente com o seu caminho.
O
parâmetro Atributos é uma constante, ou expressão numérica
( a soma dos valores de cada atributo ) que especifica o valor
do novo atributo do arquivo.
A
tabela a seguir mostra as contantes, já definidas no Visual
Basic, que podem ser usadas nesta operação:
| Constante |
Valor |
Descrição |
| vbNormal |
0 |
Normal
(default) |
| vbReadOnly |
1 |
Somente
Leitura |
| vbHidden |
2 |
Escondido |
| vbSystem |
4 |
Arquivo
de sistema |
| vbArchive |
32 |
Arquivo
foi alterado desde o último backup. |
Veja
como alterar o atributo do arquivo AUTOEXEC.BAT no diretório
raiz do disco C para: Somente leitura, escondido e sistema:
SetAttr
"C:\autoexec.bat",
vbReadOnly + vbHidden + vbSystem
|
|
Função para arredondar números
Esta
função arredonda números para uma quantidade especificada
de casas decimais.
Public Function ArredondaNumero(NumeroInformado As Variant,_CasasDecimais
As Integer) As Variant
Dim Temp As Double, Decimais As Long
Temp = CDbl(NumeroInformado)
Decimais = 10 ^ CasasDecimais
ArredondaNumero = (Fix((Temp + 0.5 / Decimais) * _
Decimais)) / Decimais
End Function |
|
Convertendo
o conteúdo da String para maiúscula
Se
você quiser converter o texto que está sendo digitado no TextBox
para maísculas, basta criar uma função e faça chamada à mesma
no evento KeyPress do TextBox, como mostrado abaixo, sendo
a necessidade de conversão posterior:
Private Sub Texto_KeyPress(KeyAscii As Integer)
KeyAscii = Maiuscula(KeyAscii)
End Sub
Function Maiuscula(KeyAscii As Integer)
If KeyAscii > 96 And KeyAscii < 123 Then
KeyAscii = KeyAscii - 32
End If
Maiuscula = KeyAscii
End Function |
|
Animando o título de uma janela:
O
código a seguir exibe a forma de manipular o Caption do form
para que o mesmo tenha um efeito de Marquee. Coloque o código
a seguir em um form:
Private Const Dif = 2000 'corresponde ao ícone e ao ControlBox
do form
Dim Encerrado As Boolean 'indica que o form foi fechado e
pára o código
Private Sub Form_Activate()
Dim N#, Decrescente As Boolean
Dim Cnt%, Larg#, LargT#, Texto$, Lim%
N = Timer
Do While Not Encerrado
If Timer > N + 0.01 Then
N = Timer
Select Case Decrescente
Case False
Cnt = Cnt + 1
Texto = String(Cnt, " ") + "Mensagem do Marquee"
LargT = TextWidth(Texto)
Larg = ScaleWidth - 1110
If LargT >= Larg Then
Cnt = Cnt - 2
Decrescente = True
Texto = String(Cnt, " ") + "Mensagem do Marquee"
End If
Caption = Texto
Case Else
Cnt = Cnt - 1
If Cnt < 1 Then
Cnt = 1
Texto = "Mensagem do Marquee"
Decrescente = False
Else
Texto = String(Cnt, " ") + "Mensagem do Marquee"
End If
Caption = Texto
End Select
End If
DoEvents
Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
Encerrado = True
End Sub
|
|
Comparando informações de ponto flutuante
em VB:
Em
comparações de expressões de ponto flutuante não podemos usar
com precisão o operador = pelo fato de que as variáveis do
tipo Single ou Double têm precisão finita. Para tal use o
código a seguir:
Dim i As Integer, d as Double
For i = 1 to 10
d = d + CDbl(0.1)
Next
MsgBox (d=1) ' Mostrará "FALSE"
Para comparar mais facilmente dois números de ponto flutuante,
use a nova função Round do
VB 6.0 que arredonda um número até as casas decimais desejadas.
Podemos reescrever o teste
acima conforme segue:
MsgBox (Round(d,12) = 1) 'Mostrará "TRUE"
Você também pode usar este método para comparar se duas variáveis
A e B contém valores
que são iguais até a décima segunda casa decimal:
If Round(A - B, 12) = 0 Then Print "Valores Igauis" |
|
Capturando o número de série do HD:
Para
obter o número de série do HD, use o código que segue:
Dim ns As New Scripting.FileSystemObject
Dim numero As Scripting.Drive
' Get a reference to the Drive object
Set numero = ns.GetDrive("C")
Print Hex$(numero.SerialNumber) |
|
Adiantando o conteúdo completo do digitado,
através de aproximação de conteúdo
O
código a seguir, cria um caixa de entrada de text (input box)
inteligente.
Toda vez que você digita alguma coisa numa caixa de texto,
as primeiras letras do texto sendo
digitado, são comparadas com uma lista invisível de textos.
O código "advinha" que texto
estaria sendo digitado de uma forma similar ao comportamento
da nova versão do Internet Explorer.
Para usar esta técnica, adicione uma lista de texto (list
box) no seu formulário e mude a propriedade Visible para False.
Neste exemplo, usei uma lista fictícia de informações que
é preenchida no evento Load do form. Numa aplicação real,
você deve ir adicionando um novo elemento à lista de texto
após o usuário completar a digitação na caixa de texto.
Escreva o código abaixo no formulário que contém a lista de
textos e a caixa texto para digitação:
Option Explicit
Private Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib _
"User32" Alias "SendMessageA" (ByVal _
hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) _
As Long
Private Sub Form_Load()
List1.AddItem "Laranja"
List1.AddItem "Banana"
List1.AddItem "Maça"
List1.AddItem "Pera"
End Sub
Private Sub Text1_Change()
Dim pos As Long
List1.ListIndex = SendMessage( _
List1.hWnd, LB_FINDSTRING, -1, ByVal _
CStr(Text1.Text))
If List1.ListIndex = -1 Then
pos = Text1.SelStart
Else
pos = Text1.SelStart
Text1.Text = List1
Text1.SelStart = pos
Text1.SelLength = Len(Text1.Text) - pos
End If
End Sub
Private Sub Text1_KeyDown(KeyCode As _
Integer, Shift As Integer)
On Error Resume Next
If KeyCode = 8 Then 'Backspace
If Text1.SelLength <> 0 Then
Text1.Text = Mid$(Text1, 1, _
Text1.SelStart - 1)
KeyCode = 0
End If
ElseIf KeyCode = 46 Then 'Del
If Text1.SelLength <> 0 And Text1.SelStart <>
0 Then
Text1.Text = ""
KeyCode = 0
End If
End If
End Sub |
Datas
|
Função
para retornar o último dia da semana:
Function
ÚltimoDiaDaSemana(D As Variant, Optional FirstWeekday As Integer)
As Variant
If IsMissing(FirstWeekday) Then
ÚltimoDiaDaSemana = D - WeekDay(D) + 7
Else
ÚltimoDiaDaSemana = D - WeekDay(D, FirstWeekday) + 7
End If
End Function |
|
Função
para retornar o último dia do mês:
Function
ÚltimoDiaDoMês(D As Variant) As Variant
ÚltimoDiaDoMês = DateSerial(Year(D), Mês(D) + 1, 0)
End Function |
|
Função
para retornar o número de dias de um determinado mês:
Function
DiasNoMês(D As Variant) As Variant
If VarType(D) <> 7 Then
DiasNoMês = Null
Else
Select Case Mês(D)
Case 2
If PuloAno(Ano(D)) Then
DiasNoMês = 29
Else
DiasNoMês = 28
End If
Case 4, 6, 9, 11
DiasNoMês = 30
Case 1, 3, 5, 7, 8, 10, 12
DiasNoMês = 31
End Select
End If
End Function |
|
Função
para conhecer o primeiro dia da semana:
Function
PrimeiroDiaDaSemana(D As Variant, Optional FirstWeekday As
Integer) As Variant
If IsMissing(FirstWeekday) Then 'Sunday is the assumed first
day of week.
PrimeiroDiaDaSemana = D - WeekDay(D) + 1
Else
PrimeiroDiaDaSemana = D - WeekDay(D, FirstWeekday) + 1
End If
End Function |
Converte
o dia da semana em extenso.
Insira o codigo abaixo na seção General Declarations do seu
form.
Private Function ConvertDayofWeek(nr%) As String
Select Case nr%
Case 1
ConvertDayofWeek = "Domingo"
Case 2
ConvertDayofWeek = "Segunda-Feira"
Case 3
ConvertDayofWeek = "Terca-Feira"
Case 4
ConvertDayofWeek = "Quarta-Feira"
Case 5
ConvertDayofWeek = "Quinta-Feira"
Case 6
ConvertDayofWeek = "Sexta-Feria"
Case 7
ConvertDayofWeek = "Sabado"
End Select
End Function
Abaixo segue um exemplo de como aplicar esta função:
Form1.Caption = ConvertDayofWeek(DatePart("w", Now))
|
Active
X / Controles / DLL
|
Erros
no DriveListBox
Private
Sub Dir1_Change()
'Informa que os arquivos que irão aparecer no FileListBox
serão os do diretório selecionado
'no DirListBox
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
'O tratamento abaixo, é para o caso de não existir disco na
unidade selecionada
On Error GoTo ErrorDRV
'Caso não tenha ocorrido erros, ordena que os diretórios que
irão aparecer no
'DriveListBox devem ser o da unidade selecionada
Dir1.Path = Drive1.Drive
Exit Sub
'Trata o erro citado acima
ErrorDRV:
MsgBox "Não há disco nesta unidade !", vbCritical
End Sub |
|
Testando
a existência de um controle
Private
Sub Command1_Click()
On Error GoTo AlgoErrado
If Me("Label1").Name <> vbNullString Then
MsgBox "Positivo"
End If
Exit Sub
AlgoErrado:
MsgBox "Negativo"
End Sub |
Componentes
|
Executando
o botão de outro formulário.
Crie
no formulário que você deseja abrir e executar o botão uma
Public Sub e chame evento click do botão de comando. Segue
abaixo um exemplo onde vou executar o evento click do botão
Command1 do Form2. Segue abaixo o exemplo:
----Form2-----
Public Sub ExecutaBotao()
Call Command1_Click
End Sub
Private Sub Command1_Click()
Msgbox "Teste"
End Sub
----Form1-----
'Abra e execute o botão utilizando o seguinte código
Form2.Show
Form2.ExecutaBotao |
|
alterando
a cor do Label quando o mouse passar sobre o label, dando a
aparencia de um link
Private
Sub Form_MouseMove(Button As Integer,
Label1.ForeColor = &H80000012
End Sub
Private Sub Label1_MouseMove(Button As Integer,
Label1.ForeColor = &HFF&
End Sub |
|
Permitir
que apenas números sejam digitados em uma caixa de texto insira
as seguintes linhas de código no evento KeyPress da mesma
If
KeyAscii < Asc("0") Or KeyAscii > Asc("9")
Then
KeyAscii = 0
End If |
Voltar
Principal
| Cursos Gratuitos
| Cursos Diversos
| Dicas
| Promoções
| Mapa do
Site | QUIZ
|
|
Classificados | Central
Currículo | Fórum
| Fale Conosco |