Ir para conteúdo
Fórum Script Brasil

MRMB

Membros
  • Total de itens

    180
  • Registro em

  • Última visita

Tudo que MRMB postou

  1. MRMB

    TXT + Variaveis

    Alex Nunes, Não sei se já resolveu o problema. Mas, para constar você poderia ler o arquivo em um "loop" e pegar os campos por posição pré-defina. Ou fazer o processo que foi comentado acima se tiver um caráter separador. De modo geral não é complicado.
  2. MRMB

    Agenda

    frata, Testei o projeto esta tudo certo e funcionando. Mas, pra resolver o problema de acesso ao banco tive de instalar o pacote completo do Acess (2007). Após fazer isso ficou fino! Estava com a versão básica do Office e nesta situação o erro que comentou realmente acontece. Para solucionar o seu problema tenta instalar completo ou reinstalar o Acess.
  3. Danleonhart, Dá uma olhada neste link: VBA Excel – Formatando várias células
  4. Thiago Albuquerque, Você esta criando um DLL tipo COM. o "_" que aparece é para identificar a interface. Abaixo a visualização da sua DLL pelo OleView (Que fica no seguinte diretório C:\Program Files\Microsoft Visual Studio\Common\Tools\OLEVIEW.EXE) // Generated .IDL file (by the OLE/COM Object Viewer) // // typelib filename: Teste.dll [ uuid(3CA9B964-CE5B-4EB0-9407-722B522EABB6), version(1.0) ] library Teste { // TLib : // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046} importlib("stdole2.tlb"); // Forward declare all types defined in this typelib interface _Thiago; [ odl, uuid(1408E475-BC4C-4BA4-8157-263657A99899), version(1.0), hidden, dual, nonextensible, oleautomation ] interface _Thiago : IDispatch { [id(0x60030001)] HRESULT GetConnection(); }; [ uuid(F05170AA-4BCB-4987-AC9A-57322AB29C4D), version(1.0) ] coclass Thiago { [default] interface _Thiago; }; }; Perceba que a classe "Thiago" (coclass Thiago) consta normalmente e a interface consta "_" para diferenciar. Assim a classe "Thiago" faz uso da interface( "[default] interface _Thiago") Isso não irá alterar a chamada em outro programa que use sua DLL. Como exemplo o codigo abaixo que uso sua DLL em outro projeto. Private Sub Exemplo() Set objTeste = New Teste.Thiago End Sub É padrão esse "_" na interface. Isso não irá apresentar nenhum problema de registro da DLL.
  5. MRMB

    Armazenar valores

    Nosferato, Você poderia gravar em arquivo texto ou arquivo .dat. Penso que usar arquivo .dat seja mais interessante no seu caso. Da uma olhada nos links abaixo talvez possa te ajudar. http://www.macoratti.net/txt_arqs.htm http://www1.univap.br/valdirgp/Apostilas/VB/Aula4.pdf
  6. NandaSP, Você por acaso esta com Windows 7 (32 ou 64) com SP1? Se estiver da uma olhada nesses tópicos abaixo. 1 - Nova versão do ADO no Windows 7 SP1 ocorre erro 2 - Verifiquei esse link da Microsoft que fala sobre o erro: Um aplicativo ADO não é executado em sistemas operacionais de nível inferior após recompilá-lo em um computador que esteja executando o Windows 7 SP 1 ou Windows Server 2008 R2 SP 1 ou que tem o KB983246 instalado
  7. Pessoal, Achei a solução para o problema! Caso alguém precise.... Fiz a copia de um computador com Windows XP SP3 da TLB msado27.tlb que esta em "C:\Arquivos de Programas\Arquivos Comuns\System\ado\" e substitui a msado27.tlb do Windows SP1 que se encontra no diretório "C:\Program Files\Common Files\System\ado". Alterei as referências para utilizar essa TLB nos projetos. Compilei com sucesso e a instalação no cliente com Windows XP, Windows Vista (32 e 64) e Windows 7 (32 e 64) funcionou também.
  8. MRMB

    Usar o excel no VB

    cerri, Penso que você queira exibir a planilha no formulário mantendo todas as funcionalidades da planilha. Caso for isso fico devendo. Mas verifique o link abaixo talvez possa te ajudar. Excel - Visual Basic - Importando e Exportando dados
  9. Edno Junior, Após um mês... Acho que você já resolveu o problema. Mas, respondendo a sua solicitação. Seria bem simples. Como comentou no cadastro adicionar um campo de valor mínino no cadastro do produto. Na saída do produto consultar esse campo se valor for igual ou menor exibir aviso para usuário ou conforme a regra de negócio não permitir lançar o produto. Código abaixo mostra um exemplo de validação após selecionar o produto na saída. Private Sub ConsultaEstoqueMinimo(prodID As String) strSQL = Empty strSQL = strSQL & "SELECT QUANTIDADE, QTDE_MINIMA " _ & vbCrLf & "From dbo.ESTOQUE " _ & vbCrLf & "Where ESTPROID = " & prodID & _ & vbCrLf & "ORDER BY ESTSID DESC" ' Define o RS como local para trabalhar desconectado. RS.CursorLocation = adUseClient On Error GoTo MostrarErro ConectarDB RS.Open strSQL, ObjConn, adOpenForwardOnly Set RS.ActiveConnection = Nothing DesconectarDB On Error GoTo 0 ' Fecha conexão do RS Set RS.ActiveConnection = Nothing ' Verifica estoque mínimo. if RS.Fields("QUANTIDADE") <= RS.Fields("QTDE_MINIMA") ' Aqui você valida se irá deixar lançar o produto ou não end if Set RS = Nothing Exit Sub MostrarErro: strMsgErro = "Ocorreu erro na execução do processo." _ & vbCrLf & "" _ & vbCrLf & "Número do erro: " & Err.Number _ & vbCrLf & "Descricão do erro: " & Err.Description _ & vbCrLf & "Método: ConsultaEstoqueMinimo" Call MsgBox(strMsgErro, vbCritical, Me.Caption) End Sub
  10. Pessoal, Estou com a seguinte situação em relação a MSADO27.tlb Tinha meu ambiente de desenvolvimento no Windows XP SP3 funcionando tanto a parte de desenvolvimento quanto a geração do instalador para usuários tudo funcionando perfeitamente. Contudo quando atualizei o sistema operacional para Windows 7 SP1 32 bits a parte de desenvolvimento fico fino! Não apresentou nenhum problema. Todavia ao gerar o instalador e instalar nos usuários com Windows XP e Windows 7 sem SP1 ocorre erro na conexão do banco ao iniciar aplicação. Após alguns dias analisando essa situação de erro cheguei algumas conclusões sobre o erro. E o principal é que msado27.tlb foi atualizada no Windows SP 1 mantendo o mesmo nome e os projetos VB6 compilado com essa nova versão não terá compatibilidade com a versão do Windows XP e Windows 7 sem SP1. Verifiquei esse link da Microsoft que fala sobre o erro Um aplicativo ADO não é executado em sistemas operacionais de nível inferior após recompilá-lo em um computador que esteja executando o Windows 7 SP 1 ou Windows Server 2008 R2 SP 1 ou que tem o KB983246 instalado Após leitura do artigo segui os passos da solução para "Para computadores de 32 bits". Contudo após recompilar novamente utilizando a nova TLB do artigo com sucesso ao instalar no cliente com Windows XP ou Windows 7 sem SP1 o erro continua. Gostaria de saber se alguém teve esse problema e como conseguiu contornar o mesmo. Desde já agradeço!
  11. guilhermefkn, Use o comando abaixo: Worksheets("Plan1").Range("C3").Activate Fica fino! T+ fl w
  12. rafaelcpcunha, Da uma olhada no link abaixo... Aqui no fórum mesmo. Também tive dificuldade para envio de e-mail. http://scriptbrasil.com.br/forum/index.php?showtopic=151691 Utilizei Microsoft CDO for Windows 2000 Library e esta funcionando perfeitamente. Contudo, no tópido a outras opções para enviar e-mail. T+ fl w
  13. MRMB

    Agenda - ótima

    frata, Acho que você quer esta neste link abaixo http://www.vb6.us/tutorials/working-random-access-files-vb Fino! Não é uma agenda... Mais se você pegar idéia faz um do zero bem rápido. falou
  14. MRMB

    Duvida Com Teclas

    Kimoszin, Não sei se é bem isso que você quer...mas verifica o código abaixo. Vê se atende a sua necessidade. Option Explicit Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) ' Tecla Seta (Lado direito) : KeyCode = 39 ' Tecla 6 : KeyCode = 54 If KeyCode = 39 Then KeyCode = 54 End If If KeyCode = 54 Then ' Executa o código associado à tecla seis. MsgBox "OK" End If End Sub
  15. Então rkvmkioji, talvez possa ser útil...essa dica... Digamos que temos Programa1 (Sistema qualquer) que chama o Programa2 (atualizador do sistema) ' No Programa1 chama o Programa2 Private Sub Form_Load() 'Usando a função "ShellExecute" chama o programa "Programa2.exe" com um parâmetro qualquer de indentificação (esse parâmetro é string). 'ShellExecute Programa2.exe Teste End Sub 'No programa2 você valida o parâmetro que o primeiro programa passou. Private Sub Form_Load() ' Validação para somente executar o Programa2 se o Programa1 chamou If Command <> "Teste" Then Unload Me Exit Sub End If ' Se foi o Programa1 que fez a chamada você implementa métodos para gravar o resultado do Programa2 em texto. End Sub ' Ao finalizar o Programa2 retornar para Programa1 e você pode ler o arquivo texto gerado pelo Programa2. Espero ter ajudado. T+
  16. Então Kuroi o InstallShield analisa a aplicação vb6 e mostra quais pacotes precisa ir na instalação. Não testei com aplicações Delphi na época que utilizava o Delphi utilizava o Inno Setup, mas penso que fica fino também com aplicações Delphi. Além do VB6 já utilizei esse recurso para aplicações em C++ e ficou fino também! Caso queira realizar os downloads dos pacotes pelo InstallShield e realizar a instalação com Inno Setup também é possível mas dá um pouco de trabalho. Realizei alguns testes simples e achei melhor utilizar o InstallShield. T+
  17. Talvez ajude.... Tempos atrás estava com essa dificuldade, contudo não usava arquivo Word para imprimir. Utilizava uma impressora matricial onde exibia alguns caracteres inválidos no inicio da impressão. Para resolver o problema antes de imprimir verifico todos os caracteres que serão impressos e só considero os caracteres após encontrar a seqüência ESC @, que no meu caso é onde realmente começa a impressão. Com isso parou de ocorrer o erro de caracteres inválidos na impressão. T+
  18. Tem um jeito a "prova de erros" para instalação do crystal 8.5 na máquina do usuário. Faça o instalador da sua aplicação pelo InstallShield no caso uso o InstallShield 2009. Neste programa tem uma opção de "Redistributables" onde o InstallShield analisa todos os arquivos de sua aplicação e verifica o que precisa ser instalado na máquina do usuário. E você tem opção de realizar downloados dos pacotes necessários para distribuir o sistema. Um desses pacotes é o Crystal Reports 8.5 SP 3 que seria o pacote para versão que kuroi comentou. Se usar outra versão do Crystal Reports pode se realizar o download do mesmo pelo InstallShield. O melhor que esse pacote funciona em Windows 2000, Windows XP, Windows Vista, Windows 7 32 e 64 bits. T+
  19. Pessoal, Após instalar o Microsoft Visual Studio 6 em um computador com Windows 7 32 ou 64 e configurar ambiente para minha situação ocorre erro ao compilar os projetos no Visual C++ 6.0. O erro que ocorre é o seguinte faço referência de determinado arquivo no projeto C++ como exemplo este C:\Arquivos de programas\Microsoft Visual Studio\VC98\INCLUDE\cguid.h, no Windows XP compila já no Windows 7 ocorre erro porque o diretório não existe. Ao invés de "C:\Arquivos de programas\" ten-se "C:\Program Files\". Gostaria de saber se tem como colocar uma diretiva de compilação que identifica o sistema operacional e passa a considerar o arquivo no local correto quando Windows XP ou Windows 7 caso seja possível colocaria nos projetos para que possa compilar em ambos sistemas. Desde já agradeço a ajuda! Qualquer idéia de solução é bem vinda!
  20. Aprendiz99, verifica este artigo Imprimindo no Visual Basic - o objeto Printer. No item 5 é sobre impressão na porta ltp1. T+
  21. Matheus-vb6....dá uma olhada no código abaixo... seria isso que você quer fazer... Option Explicit Private TextCombo As String Private Sub Combo1_Click() If Combo1.Text = TextCombo Then Label1.Caption = Combo1.Text TextCombo = Combo1.Text End Sub Private Sub Form_Load() TextCombo = Empty End Sub T+
  22. Você poderia fazer uso do componente Timer. Onde no intervalo você verifica a quantidade de registro da tabela que a grid esta acessando. Caso alguém inserir registro a quantidade de registro da tabela é alterado e você consegue validar e executar a consulta novamente para atualizar a grid. Isso seria para inserção. Para atualização você irá precisar de um campo de controle na tabela. Cria um campo "CADASTROATUALIZADO" do tipo long, sempre que alguém atualizar o cadastro incrementa (valor do campo + 1). Dessa maneira utilizando o timer você irá conseguir verificar se algum registro na tabela teve atualização e atualizar o valor na grid. T+
  23. MRMB

    Enviar e-mails

    Isso trata o erro que retornará número especifico. Private Sub EnviarEmail() On Error GoTo TrataErro ' Rotina que envia o e-mail, caso ocorra erro irá para "TrataErro:". On Error GoTo 0 Exit Sub TrataErro: Call MsgBox(Err.Number, vbCritical, "Número do erro") Call MsgBox(Err.Description, vbCritical, "Descrição do erro") End Sub No caso você consegue capturar o número do erro e validar "Err.Number" em um "if", assim pode fazer um tratamento especifico para cada situação (ex: corromper). T+
  24. Victor1822, poderia ser feito dessa maneira.... Private Sub Form_Load() ' Carregar os itens no combo e posicionar no primeiro. ' ....código... Combo1.ListIndex = 0 End Sub Private Sub Command1_Click() Dim TotalCombo As Long TotalCombo = Combo1.ListCount - 1 If Combo1.ListIndex + 1 <= TotalCombo Then Combo1.ListIndex = Combo1.ListIndex + 1 Else MsgBox "Fim da lista!" End If End Sub T+
  25. Ewerton Melo, para resolver seu problema faça o seguinte adicione referencia ao projeto da classe "Microsoft Scripting Runtime". Depois verifique o código abaixo que cria arquivo, escreve, fecha, abre e escreve novamente. Private Sub Command1_Click() Dim objFSO As New Scripting.FileSystemObject Dim Arquivo As TextStream Set Arquivo = objFSO.CreateTextFile(App.Path & "\Teste.txt") Arquivo.Write "Escreve na mesma Linha 1" Arquivo.Write "Escreve na mesma Linha 2" Arquivo.WriteBlankLines 1 ' Linha em branco Arquivo.WriteLine "Escreve com Enter 1" Arquivo.WriteLine "Escreve com Enter 2" Arquivo.Close Set Arquivo = Nothing ' Abre o arquivo Set Arquivo = objFSO.OpenTextFile(App.Path & "\Teste.txt", ForAppending) Arquivo.WriteBlankLines 1 ' Linha em branco Arquivo.Write "Escreve na mesma Linha 1B" Arquivo.Write "Escreve na mesma Linha 2B" Arquivo.WriteBlankLines 1 ' Linha em branco Arquivo.WriteLine "Escreve com Enter 1B" Arquivo.WriteLine "Escreve com Enter 2B" Arquivo.Close Set Arquivo = Nothing objFSO.CopyFile App.Path & "\Teste.txt", App.Path & "\Teste2.txt", True Set objFSO = Nothing End Sub Em relação a salvar o que foi escrito em no primeiro arquivo em outro pode utilizar a função CopyFile. T+
×
×
  • Criar Novo...