Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Otacildo

Expressão não é um método

Recommended Posts

Estou desenvolvendo um sistema em vb.net 2010. A solução contém cinco projetos, um EXE (Principal) e quatro DLL (Cadastro, Financeiro, Jurídico e Biblioteca). A Biblioteca.dll contém uma classe Utils com funções para validar CPF, encriptar Senha e outras. Referenciei a Biblioteca.dll no projeto Principal.exe.  Quando chamo fValidaCPF(txtCPF.text) do Projeto Principal.exe é apresentado um erro “Expressão não é um método”.

 

'----------------------------------------------------------------------

'Projeto Principal.exe

'----------------------------------------------------------------------

Imports Biblioteca

Imports Biblioteca.Utils

Imports System.Windows.Forms

Public Class Principal

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        fValidaCPF(TextBox1.Text)

    End Sub

End Class

 

 

 

'----------------------------------------------------------------------

'Projeto Biblioteca.dll

'Valida CPF

'----------------------------------------------------------------------

Public Function FValidaCPF(ByVal CPF As String) As Boolean

    Dim i, x, n1, n2 As Integer

    CPF = CPF.Trim

    For i = 0 To dadosArray.Length - 1

        If CPF.Length <> 14 Or dadosArray(i).Equals(CPF) Then

            Return False

        End If

    Next

    'remove a maskara

    'If Len(CPF) > 11 Then

    CPF = CPF.Substring(0, 3) + CPF.Substring(4, 3) + CPF.Substring(8, 3) + CPF.Substring(12)

    'End If

    For x = 0 To 1

        n1 = 0

        For i = 0 To 8 + x

            n1 = n1 + Val(CPF.Substring(i, 1)) * (10 + x - i)

        Next

        n2 = 11 - (n1 - (Int(n1 / 11) * 11))

        If n2 = 10 Or n2 = 11 Then n2 = 0

        If n2 <> Val(CPF.Substring(9 + x, 1)) Then

            MsgBox("O CPF informado não é válido. Verifique se digitou corretamente.", _

                   MsgBoxStyle.Information, "GA .Net Consultoria")

            Return False

        End If

    Next

 

    MsgBox("O CPF informado é válido.", _

           MsgBoxStyle.Information, "GA .Net Consultoria")

 

    Return True

End Function

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por gereiz
      Bom dia a todos. Adaptei um código para renomear vários arquivo com vba, que realiza a seguinte função:
       
      1) Eu seleiono a pasta,
      2) O VBA abre o PDF (Nota fiscal) , extrai a informação do texto e com a razão social fecha o pdf e renomeia ele com o nome extraido.
       
      O problema é que após renomear o primeiro arquivo corretamente a execução do código trava, e é necessário finalizar o processo.
      Segue abaixo o código.
      Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Public Function ListaArquivos(ByVal Caminho As String) As String()          'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime     Dim FSO As New FileSystemObject     Dim result() As String     Dim Pasta As Folder     Dim Arquivo As File     Dim Indice As Long         ReDim result(0) As String     If FSO.FolderExists(Caminho) Then         Set Pasta = FSO.GetFolder(Caminho)           For Each Arquivo In Pasta.Files             Indice = IIf(result(0) = "", 0, Indice + 1)             ReDim Preserve result(Indice) As String             result(Indice) = Arquivo.Name         Next     End If       ListaArquivos = result ErrHandler:     Set FSO = Nothing     Set Pasta = Nothing     Set Arquivo = Nothing End Function Private Sub selecionar_pasta()  Dim box As Folder  Dim arquivos() As String  Dim lCtr As Long  Dim AdobeApp As String  Dim StartAdobe  Dim Arquivo As String  Dim NomeAntigo As String  Dim NomeNovo As String        On Error Resume Next      linha = 1      ultima_linha = Sheets("teste").Cells(Rows.Count, 1).End(xlUp).Row                  With Application.FileDialog(msoFileDialogFolderPicker)             .Title = "Buscar pasta"             .InitialFileName = ThisWorkbook.Path             .Show             .AllowMultiSelect = False             Pasta = .SelectedItems(1)         End With         TextBox1 = box          arquivos = ListaArquivos(Pasta)     Sleep 1000     For lCtr = 0 To UBound(arquivos)       Debug.Print arquivos(lCtr)         'Inserir código aqui'                  'Cells(linha, 1).Value = arquivos(lCtr)         'linha = (linha + 1)         'Sleep 500                                 pdf = arquivos(lCtr)                    AdobeApp = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"                      Sleep 2000                                          For Each pdf In Pasta                                 Adobefile = Pasta & "\" & pdf                    StartAdobe = Shell("" & AdobeApp & " " & """" & Adobefile & """" & "", 1)                              Sleep 2000                                         Application.SendKeys ("^a")             Application.SendKeys ("^c")              Sleep 2000                                    Dim KillPdf As String            KillPdf = "TASKKILL /F /IM AcroRd32.exe"            Shell KillPdf, vbHide                                               AppActivate Application.Caption                                            Sheets("teste").Range("A1").Activate             SendKeys ("^v")                                   DoEvents                                                                     Dim Razao As String             Razao = Sheets("teste").Range("A17").Value             pontos = InStr(1, Razao, ":")             qtdeLetras = Len(Razao)             Nome = Right(Razao, qtdeLetras - pontos)             Sheets("teste").Range("C1").Value = Nome                                                                   Do While Not IsEmpty(Range("C1"))                                              NomeAntigo = Pasta & "\" & pdf                                      NomeNovo = Pasta & "\" & Sheets("teste").Range("C1").Value & ".pdf"                                  Sheets("teste").Range("C2").Value = Adobefile                                      Sheets("teste").Range("C3").Value = Pasta & "\" & Sheets("teste").Range("C1").Value & ".pdf"                                                       Name NomeAntigo As NomeNovo                                                                  ' DoEvents                                         Loop                       ' MsgBox "Nomes dos arquivos alterados!", vbOKOnly, "Processo Concluído"                                                Next                       Next           ' MsgBox ("Arquivos Encontrados = ") & (linha - 1)                    End Sub Já tentei de tudo, e não consegui resolver esse problema, se eu remover o Do while, ele executa normalmente, porem não renomeia os arquivos. Seu eu faço esse laço, ele renomeia só o primeiro e trava geral.
       
      Qualquer esclarecimento, agradeço.

       
    • Por Robson Wenzel
      Olá, sou novo no VB
       
      Estou desenvolvendo um programa de atendimento médico onde tem vários textboxs e um deles é de Valor (R$).
       
      O meu problema é o seguinte...
      No meu banco de dados o campo valor é do tipo moeda e o banco é em access
      No meu programa no dataset configurei ele para double e por código consegui colocar automaticamente ponto e virgula.
      Até ai acho que tudo bem...
      Só que quando eu clico para salvar ele automaticamente esquece do ponto e virgula e salva no datagridview o valor sem ponto e virgula, e dai quando eu seleciono o registro ele esquece dos centavos
       
      Ex.:
      Eu digito na text box: R$ 1.250,00
      E quando eu salvo aparece na datagridview: 1250
      Quando seleciono o mesmo registro ele fica assim na textbox: R$ 12,50
      Só se os centavos não forem zerados ele salva mais se forem 00 ele não salva
       
      Por favor! me ajudem.
       
      Segue o código da formula para colocar os ponto e virgula para vocês darem uma olhada e ver se tem erros...
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Public Shared Sub Moeda(ByRef txt As TextBox)         Dim n As String = String.Empty         Dim v As Double = 0         Try             n = txt.Text.Replace(",", "").Replace(".", "")             If n.Equals("") Then n = ""             n = n.PadLeft(3, "0")             If n.Length > 3 And n.Substring(0, 1) = "0" Then n = n.Substring(1, n.Length - 1)             v = Convert.ToString(n) / 100             txt.Text = String.Format("{0:C2}", v)             txt.SelectionStart = txt.Text.Length         Catch ex As Exception         End Try     End Sub     Private Sub valortxt_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles valortxt.KeyPress         Select Case (valortxt.TextLength)             Case 4                 valortxt.SelectionStart = 5         End Select     End Sub     Private Sub valortxt_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles valortxt.TextChanged         Atendimentos.Moeda(valortxt)     End Sub ------------------------------------------------------------------------------------------------------------------------------------------------------------
    • Por Roberto Paes
      System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.exe"; startInfo.Arguments = "/C start copy " + Application.StartupPath + @"\launcher\Sanchez.Patcher.exe " + Application.StartupPath; process.StartInfo = startInfo; process.Start(); Oi pessoal, Boa noite. Me chamo Roberto e estou tendo problemas em usar o cmd com o c#. O meu código funciona perfeitamente, mas eu não consigo ocultar a janela do cmd. Bom, apresentado o meu problema. Espero que possam me ajudar.
       
       
    • Por felipegon02
      Gostaria da ajuda de vocês membros, estou fazendo um projeto que é pro meu TCC utilizando o MYSQL  e o Visual Basic, neste projeto queria fazer agendamento de clientes, mas para isso, queria comparar o horário selecionado pelo cliente com o banco de dados, para ver se o horário está disponível mas não sei com fazer isso. Obrigado 
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.