Jump to content
Fórum Script Brasil

Anderson Fernandes

Membros
  • Posts

    108
  • Joined

  • Last visited

About Anderson Fernandes

  • Birthday 03/01/1989

Contatos

Perfil

  • Gender
    Male
  • Location
    São Paulo - SP
  • Interests
    Visual Basic 6, C#, ASP.NET, SAP

Anderson Fernandes's Achievements

0

Reputation

  1. É exatamente isso q eu disse... A porta 80 é bloqueada pela telefonica para clientes speedy para receber conexões... use uma porta mais alta. Faça como eu disse referente ao MSN.... faça as configurações no SEU modem e faça com q seus amigos se conectem a você. Detalhe o seu IP provavelmente é IP Dinamico, ou seja de tempo em tempos ele altera... use um programa dDNS como o http://www.winco.com.br/ddns http://www.baixaki.com.br/download/winco-agente-ddns.htm para resolver este problema. A unica coisa que um port scan faz é: tentar se conectar de porta em porta em um IP especifico, as portas que estiverem liberadas e sendo utilizadas por algum outro programa como por exemplo o apache ou IIS aceitara a conexão. e são essas as portas q são listadas.
  2. Na realidade não é problema do VB6.... O motivo por não funcionar é q o PC dos seus amigos estão em rede diferentes... para poder acessar é necessario acessar o IP publico do PC dos seus amigos algo do tipo 201.1.54.123 ou 189.1.54.123 alem disso é necessario configurar no modem o a porta ai já da um pouquinho mais de trabalho... Por exemplo o MSN funciona no seu PC porque é o MSN instalado no seu pc q conecta no servidor da microsoft q já tem todas essas configurações feitas etc... depois de conectado o servidor consegue enviar e receber informações TCP... Se fosse ao contrario o servidor do MSN conectar no seu pc tambem seria necessario efetuar as configurações no seu modem para liberar a porta e redirecionar para a rede interna etc e tal... se você tiver 2 ou mais PCs ai na sua casa ligados ao mesmo modem ou hub q seja... ai você vai conseguir porque eles estão ligados na mesma rede local.... Eu configurei umas vez o meu pc para ser servidor Web.... E descobri q a telefonica bloqueia até a porta 1050 por ai para receber conexões... alem do que a taxa de upload é limitada, mas isso já não vem ao caso.... acho q você pode descobrir o seu ip publico por este site: http://ip.zeemind.com/?s=free-app&hl=pt-BR você precisara efetuar as devidas configurações no seu modem configurando um porta de numero alto no seu programa e pedir para os seus amigos conectarem neste IP publico.... Bom da uma pesquisada no google... qualquer duvida abre outro tópico para que outros possam te ajudar tambem. Abç!
  3. Veja a definição para cada uma delas em: http://www2.mat.ua.pt/lap/Praticas/Apontam.../TiposDados.htm
  4. Instalei o Crystal Reports deste link http://www.sap.com/solutions/sap-crystal-s...ports/index.epx mas não estou encontrando em referencias o "Crystal Reports ActiveX Design Run Time Library". Tem que instalar algum "Crystal Reports Runtime" ou Service Pack para aparecer? Desde já agradeço a atenção.
  5. Option Explicit 'By: Anderson Fernandes do Nascimento 'Date: 17/11/2010 10:47 'Faça referencia: '-Microsoft Scripting Runtime 'Faça referencia aos componentes: '-Microsoft Commoon Dialog Control 6.0 (SP6) '-Microsoft Hierarchical FlexGrid Control 6.0 (SP6) (OLEDB) ' 'Adicione no formulario '-MSHFlexGrid com o nome Grid1 '-Um menu Abrir com o nome MnuAbrir '-Um menu Calular com o nome MnuCalc1 'CommonDialog com o nome Dlg1 'Deixei tudo no jeito para você ter que se preoculpar apenas com os calculos 'Criei a Sub Calc1 para demonstrar como efetuar os calculos Private Matriz() As Variant Private Sub Form_Load() With Grid1 .FixedCols = 0 .FixedRows = 0 .Cols = 0 .Rows = 0 End With End Sub 'Menu Abrir Private Sub MnuAbrir_Click() On Error GoTo TrataErro Dlg1.Filter = "Todos os Arquivos (*.*)|*.*|Arquivos DAT (*.dat)|*.dat" Dlg1.ShowOpen Call LoadMatrizFromFile(Dlg1.FileName) Call LoadGridFromMatriz(Matriz) Exit Sub TrataErro: 'Erro que ocorre quando cancela um CommonDialog If Err.Number <> 32755 Then MsgBox Err.Number & " - " & Err.Description End If End Sub 'Menu Calculo 1 Private Sub MnuCalc1_Click() Call Calc1 End Sub 'Carrega a arquivo em um vetor para aumentar o desenpenho 'deste carregamento e de calculos posteriores. Private Sub LoadMatrizFromFile(ByVal File As String) On Error GoTo TrataErro Dim fso As New FileSystemObject Dim f As TextStream Dim l As String Dim v() As String Dim i As Currency Dim s As Currency Dim mCol As Integer Dim mLin As Integer Set f = fso.OpenTextFile(File, ForReading, False) 'Limpa a Matriz ReDim Matriz(0) 'Enquanto não for o final do arquivo faça Do While Not f.AtEndOfStream 'ler linha l = f.ReadLine 'Divide a linha nas virgulas e joga no vetor auxiliar v = Split(l, ",") If Grid1.Cols < UBound(v) + 1 Then Grid1.Cols = UBound(v) + 1 'Redimensiona Matriz preservando os valores ReDim Preserve Matriz(mLin) 'Acrescenta Colunas na ultima linha Matriz(mLin) = v() mLin = mLin + 1 'Acrescenta linha DoEvents Loop Exit Sub TrataErro: MsgBox Err.Number & " - " & Err.Description End Sub 'Carrega Grid a partir da Matrz na memoria Private Sub LoadGridFromMatriz(ByVal vMatriz As Variant) On Error GoTo TrataErro Dim v As Variant Dim n As Variant Dim c As Integer Grid1.Clear Grid1.Rows = 0 For Each v In vMatriz 'Linhas Grid1.Rows = Grid1.Rows + 1 For Each n In v 'Colunas Grid1.TextMatrix(Grid1.Rows - 1, c) = Val(n) c = c + 1 Next c = 0 DoEvents Next Exit Sub TrataErro: MsgBox Err.Number & " - " & Err.Description End Sub 'Exemplo de Calculo utilizando a matriz já carregada com o arquivo Private Sub Calc1() Dim Matriz2() As Variant 'Clona a matriz Matriz2 = Matriz 'Exemplo simples de como obter e alterar o valor de uma celula 'Pega o valor da linha 1 coluna 1 e multiplica pelo valor 2 Call SetVal(0, 0, Matriz2, GetVal(0, 0, Matriz) * 2) Dim i As Integer Dim l As Integer l = CountLinhas(Matriz) 'Salvo o numero de linhas em uma variavel para aumento de desempenho 'Soma os valores da coluna 2 com a coluna 3 e joga o resultado na coluna 1 'Observação: o vetor começa do Zero, por isso subtraia 1 no numero da coluna que deseja obter 'Exemplo: para obter a coluna/linha 1 o indice 0, para obter da coluna/linha 100 o indice é 99 For i = 0 To l 'Varre todas as linhas Call SetVal(i, 0, Matriz2, GetVal(i, 1, Matriz) + GetVal(i, 2, Matriz)) Next Call LoadGridFromMatriz(Matriz2) 'Observe que foi feito calculos sem alterar a Matriz original evitando assim recarregar o arquivo 'proporcionando um aumento de desempenho End Sub 'Retorna o numero de linhas em uma matriz Private Function CountLinhas(ByVal auxMatriz As Variant) As Integer CountLinhas = UBound(auxMatriz) End Function 'Retorna o numero de Colunas em uma matriz Private Function CountColunas(ByVal auxMatriz As Variant) As Integer Dim v As Variant v = auxMatriz(0) CountLinhas = UBound(v) End Function 'Retorna o valor de uma Celula de uma matriz Private Function GetVal(ByVal Linha As Integer, ByVal Coluna As Integer, ByVal auxMatriz As Variant) As Double Dim v As Variant v = auxMatriz(Linha) GetVal = Val(v(Coluna)) End Function 'Altera o valor de uma celula em uma matriz Private Sub SetVal(ByVal Linha As Integer, ByVal Coluna As Integer, ByRef auxMatriz As Variant, ByVal Valor As Double) Dim v As Variant v = auxMatriz(Linha) v(Coluna) = Valor auxMatriz(Linha) = v End Sub Este tópico é continuação de: http://scriptbrasil.com.br/forum/index.php?showtopic=155707
  6. Olá! você pode fazer cálculos enquanto carrega a Grid For i = 0 To UBound(v) 'Ubound(array) retona o tamanho de um Vetor 'Multiplica coluna "i" por 2 MSHFlexGrid1.TextMatrix(1, i) = IIf(IsNumeric(v(i)), Val(v(i)) * 2, v(i)) Next Diga quais são os calculos que precisa para que possamos te ajudar melhor, exemplo precisa somar uma coluna ou linha, ou qual formula deve ser aplicada em cada campo. Lembrete: Existem 2 "For i = 0 To UBound(v)" você precisa alterar o código nos 2 Observação: Este script esta verificando se o valor é numerico: IIf(IsNumeric(v(i)), Val(v(i)) * 2, v(i)) Se for numérico usa a função Val() para retirar os zeros a esquerda Se não for numérico, joga o valor na grid sem alterações. Caso você tenha certeza de que todos os arquivos contem valores numéricos, então não necessitara desta verificação. ou você pode deixar para verificação, exibindo uma mensagem de erro caso não seja numérico
  7. O SQL esta quase certo, mas você precisa informar qual codigo você quer alterar veja: atualizar = "update tab1 set Nome='" & txt2.Text & "',Endereco='" & txt3.Text & "' WHERE codigo='" & txt4.Text & "'" txt4.Text deve conter o código q você quer excluir
  8. Option Explicit Private Sub Command1_Click() On Error GoTo TrataErro: Dim fso As New FileSystemObject Dim f As TextStream Dim l As String Dim v() As String Dim i As Currency Dim s As Currency CommonDialog1.ShowOpen Set f = fso.OpenTextFile(CommonDialog1.FileName, ForReading, False) MSHFlexGrid1.Clear l = f.ReadLine v = Split(l, ",") MSHFlexGrid1.Cols = UBound(v) + 1 For i = 0 To UBound(v) - 1 MSHFlexGrid1.TextMatrix(1, i) = IIf(IsNumeric(v(i)), Val(v(i)), v(i)) s = s + IIf(IsNumeric(v(i)), Val(v(i)), 0) MSHFlexGrid1.TextMatrix(1, MSHFlexGrid1.Cols - 1) = s Next Do While Not f.AtEndOfStream l = f.ReadLine v = Split(l, ",") MSHFlexGrid1.Rows = MSHFlexGrid1.Rows + 1 For i = 0 To UBound(v) - 1 MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Rows - 1, i) = IIf(IsNumeric(v(i)), Val(v(i)), v(i)) s = s + IIf(IsNumeric(v(i)), Val(v(i)), 0) MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Rows - 1, MSHFlexGrid1.Cols - 1) = s Next Loop Exit Sub TrataErro: 'Erro que ocorre quando cancela um commondialog If Err.Number <> 32755 Then MsgBox Err.Number & " - " & Err.Description End If End Sub ta ai cara se tiver duvida no script me fala que eu comento o codigo, é que eu fiz meio q as pressas aqui, mas ta funcionando. A ultima linha do MSHFlexGrid1 esta com a soma dos valores da linha é só seguir essa logica agora eu vou durmi q bateu um sono e amanha é dia de branco rs falou t+
  9. Iae cara, pô só deu tempo de eu responder sua pergunta agora! no flexgrid tem q haver pelo menos uma linha, então como a 1ª é fixa fica assim com duas linhas. bom tenta dessa forma aqui não sei se ajuda, ou se alguém tiver alguma outra ideia ta valendo: Private Sub MSFlexGrid1_DblClick() On Error GoTo TrataErro With MSFlexGrid1 'Remove a linha selecionada Call .RemoveItem(.RowSel) End With Exit Sub TrataErro: If Err.Number = 30015 Then MSFlexGrid1.Clear End If End Sub
  10. a numeração que vem após a string de conexão (" 1, 3 ") é o mesmo que "adOpenKeyset, adLockOptimistic" ? Pois se for por "ordem" não seria : "adOpenDynamic, adLockPessimistic" Na verdade isso é só pra detalhe mesmo... pois no meu caso, não foi nem necessário incluir...porém apontei " adOpenKeyset, adLockReadOnly " pois estou utilizando este tipo desde o início... Mais uma vez Obrigado ! B) Na realidade o que acontece com essa listagem é que ela esta apenas em ordem alfabética, porem o valor das constantes são outros. Para saber o valor, clique o botão direito em cima da constante e clique em Definição que será aberto o Pesquisador de Objetos. quando eu coloquei 1 e 3 o VB não entende q eu quero o item 1 e o item 3 da listagem e sim as constantes que correspondem ao valor 1 e ao valor 3 Exemplo: Public Const adOpenKeyset = 1 ela tem o valor um e não porque esta na ordem 1 da listagem e onde escrevesse CONEXAO, tem que ser um objeto do tipo ADODB.Connection com uma conexão aberta. Dim CONEXAO As New ADODB.Connection Agora deixa eu trabalhar, a noite eu acesso novamente o forum, t+!
  11. Boa noite! Utilize a propriedade MaxLength dos texbox até mais!!!
  12. Private Sub Combo1_Click() 'O evento Click de uma combo não funciona necessariamente quando se clica em um item e sim quando se altera de um item para outro na lista. Dim SQL As String Dim RS As Recordset Set RS = New Recordset 'Acima declaramos um recordset nomeado como RS e somente depois setamos como New 'Assim quando setarmos o RS como Nothing no final da função ela será realmente liberada da memoria 'Se declararmos diretamente desta forma Dim RS As New Recordset, então quando setarmos como Nothing ela será apenas limpa/reiniciada, porem não ira liberar a memória do computador 'Criamos o SQL e passamos como parametro o item selecionado na Combo1 'Com a função Combo1.List() podemos pegar o valor de qualquer indice/item na lista da Combo, então passamos como parametro Combo1.ListIndex que é o indece atual selecionado na combo. SQL = "SELECT gramatura FROM tabela WHERE artigo='" + Combo1.List(Combo1.ListIndex) + "'" 'Abrimos o recordset para obter os registros da consulta SQL 'Para detalhes dos parametros acesse: http://www.macoratti.net/dao_ado2.htm Call RS.Open(SQL, CONEXAO, adOpenKeyset, adLockOptimistic) 'Verificamos se a consulta retornou alguma informação/registro/linha If RS.RecordCount > 0 Then 'Se retornou algum registro então 'Text1.Text recebe o valor do campo gramatura na primeiro registro Text1.Text = "" & RS!gramatura End If Set RS = Nothing End Sub Espero que de para entender, até mais!
  13. Olá! já tentou fazer algo do tipo isto: Private Sub Combo1_Click() Dim SQL As String Dim RS As Recordset Set RS = New Recordset SQL = "SELECT gramatura FROM tabela WHERE artigo='" + Combo1.List(Combo1.ListIndex) + "'" Call RS.Open(SQL, CONEXAO, 1, 3) If RS.RecordCount > 0 Then Text1.Text = "" & RS!gramatura End If Set RS = Nothing End Sub
  14. Para retirar o botão fechar use estas API's: Public Const MF_BYPOSITION = &H400& Public Declare Function RemoveMenu Lib "user32" _ (ByVal hMenu As Long, _ ByVal nPosition As Long, _ ByVal wFlags As Long) As Long Public Declare Function GetSystemMenu Lib "user32" _ (ByVal hwnd As Long, _ ByVal bRevert As Long) As Long Public Sub RemoveCloseButton(hwnd As Long) Dim hSysMenu As Long hSysMenu = GetSystemMenu(hwnd, 0) RemoveMenu hSysMenu, 6, MF_BYPOSITION RemoveMenu hSysMenu, 5, MF_BYPOSITION End Sub e chame no load do form desta forma: RemoveCloseButton Me.hwnd
  15. Pelo o que eu entendi você que q o form fique maximizado, certo? bom... ao carregar o form você pode mandar ele maximizar Mude o BorderStyle para 1 - Fixed Single Private Sub Form_Load() Me.WindowState = 2 End Sub ou isso: Private Sub Form_Load() Me.Move 0, 0, Screen.Width, Screen.Height End Sub ou simplesmente mude em tempo de designe a propriedade do windowsstate para 2 - Maximizado. t breve!
×
×
  • Create New...