Jump to content
rafaelsb2107

Erro: run-time error '94' invalid use of null

Recommended Posts

Bom dia!

tenho uma aplicação em visual basic que cadastra contratos vinculados a pastas. Porém, em alguns casos, ao tentar incluir o contrato em uma pasta(tabela) do sistema, mostra o erro Run_time error '94' invalid use of null. Por exemplo, ontem dia 02/10/2017, o meu usuário conseguiu incluir dois contratos e um não. O tamanho do CNPJ do contrato, o procedimento para cadastraro contrato no sistema não mudou. O erro ocorre em alguns casos e outros o sistema aceita.

 

Alguém poderia me auxiliar?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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.

       
    • By 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 ------------------------------------------------------------------------------------------------------------------------------------------------------------
    • By 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.
       
       
    • By 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 
    • By Everaldo Miceli d Avila
      Estou iniciando no Visual Studio (VB) estou usando um banco de dados Access interligado com vários DBF., porém não consegui que o VS montasse a edição e gravação desta o VS dá uma mensagem de que tem erro com a grafia
       "   Private Sub DBF_11ABindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles DBF_11ABindingNavigatorSaveItem.Click         Me.Validate()         Me.DBF_11ABindingSource.EndEdit()         Me.TableAdapterManager.UpdateAll(Me.DatabaseSisdespDataSet)     End Sub  "
      alguém pode me ajudar?
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.