USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  problemas com o sistema
deltanusigma
BELO HORIZONTE
MG - BRASIL
Postada em 02/11/2006 00:22 hs            
estou desenvolvendo um sistema em Visual Basic 6 e coisas inacreditaveis começaram a acontecer:
1 - coloquei o seguinte codigo no evento do form mdi load:
If App.PrevInstance = True Then
MsgBox "Já existe uma copia deste aplicativo sendo executada"
Set Construtor = Nothing
End
End If
End Sub
a função é obvia visa a fechar uma 2º instancia do aplicativo pra evitar a perda ou confusào
de dados.
essa rotina funcionava até que eu acrescentei ao sistema uma tela sobre usando os recursos
do vb pra isso. ao tentar rodar o aplicativo (exe) novamente pela 2º vez o mesmo informa
a mensagem de erro mas ao clicar no OK da caixa de dialogo - SURPRESA-  uma nova instancia
do aplicativo é executada quando o codigo mostrado acima deveria evitar isso
2 - como fazer um datagrid ligado a um controle data do tipo ado exibir os dados zebrados?
como fazer tambem para que o fundo do controle onde não são exibidos dados fique em branco
e não cinza como os formularios do windows?
3 - como fazer um item de menu selecionado ou clicado ficar em negrito e deixar de ficar em
negrito quando o formulario associado com o item de menu for fechado?
4 - adicionei o controle calendario do vb no meu sistema e apesar de ele mostrar os nomes
en ingles ele funciona. instalei o access 2000 na maquina e fui brindado com um controle calenda-
rio que exibe tudo em portugues mas não atualiza o dia. Se hoje for 25 quarta-feira ao abrir
o sistema amanha o controle calendario do acess continua marcando 25 quarta-feira, a data em
que foi configurado pela ultima vez.
5 - a titulo de teste criei um programa de instalação com o aplicativo da forma como esta
com o pakage e deployment wizard. tudo vai bem até que no final ele diz que não conseguiu
registrar um arquivo de nome msado20.tlb na pasta windowssistem. a partir dai qualquer opção
selecionada resulta na desinstalação completa do aplicativo
6 - o pakage and deployment wizard tambem informa que eu estou usando DAO no aplicativo
como isso é possivel se até agora eu só acessei a base de dados (mdb) usando um controle
ado data control? o sistema deve portanto estar utilizando so ado e nao dao
7 - como fazer o acesso a base de dados(alterar, excluir, editar etc) usando apenas codigo sem
o ado data control? existe algum aplicativo de exemplo no forum?
obrigado a todos desde já
deltanusigma
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 03/11/2006 09:51 hs            
Vou responder o q consigo no momento pois não tenho vb pra fazer verificações....
vamos lá:
 
1) Debugando vc já viu isso? Chega a passar pelo "END"?
 
2) Não dá para zebrar o DataGrid. Use o MSHFlexgrid para isso... tb pode ser conectado ao ADO. Q controle vc está falando? Não tem a propriedade background para vc mudar o fundo?
 
3) Não lembro se tem a propriedade bold para o item de menu... veja se tem algo como seumenuitem.font, seumenuitem.font.bold ... sei q dá pra fazer com check... fiz isso pra uma situação semelhante à sua para "checkar" alguns itens do menu. No meu caso a lógica foi meio difícil mas dá pra se fazer.
 
4) Só testando qdo chegar em casa... se quiser dê uma olhada no controle DtPicker. Creio q está no componente q vc escolhe lá em "project|Components..." chamado de Microsoft Windows Common Controls 2. É bastante interessante... só não sei se te atende
 
5) e 6) Não costumo mexer com o Package and Deployment do vb... mas não tem um lugar q tem as referências do seu projeto? Veja se não dá pra retirar o DAO. Não sei se vc fez mas ao incluir o controle DATA q é DAO ele referencia a biblioteca. Mesmo se vc tirar o controle do seu projeto ele continua lá... bom ae não sei o q vc fez... :)
Em relação ao arquivo... isso eu realmente não sei mas talvez o arquivo já esteja em uso e ele não deixa q a instalação prossiga... como disse antes não mexo muito com o pacote de instalação do VB mas veja se tem como ver o tipo de tratamento na instalação do arquivo. Infelizmente não posso ajudar mais q isso no momento Emoções.
 
7) Primeiro vc referencia a biblioteca do ADO (vc já deve ter a referência por ter incluído o controle ADO):
Vá no menu "Project|References..." e marque a opção "Microsoft ActiveX Data Objetct 2.X Library" onde 2.X é a versão.
 
Depois inicialize e abra o banco de dados somente uma vez e, portanto, declare como pública ou no primeiro form do seu sistema ou preferencialmente num módulo:
 
Global cnn as ADODB.Connection
 
Sub Main()
 On Error GoTo Erro:
 Set Cnn = New ADODB.Connection
 Cnn.CursorLocation = adUseClient
 Cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source= C:MEUMDB.mdb"
 FormPrincipal.Show
Erro:
If err.Number <> 0 then MsgBox Err.description & vbcrlf & Err.number,Critical
End Sub
 
No caso coloquei a inicialização da variável e abertura da conexão num módulo na Sub Main. Vc só vai no menu das propriedades do seu projeto:"Project|MEUPROJETO Properties ..." e na inicialização do seu projeto vc coloca a "Sub Main()".
 
Deste modo vc está conectado ao banco de dados. Operações de manipulação de dados:
 
Consultas:
 
1) Dim Rs as ADODB.Recordset
    Set Rs = New ADODB.Recordset
 
Rs.Open "SELECT * FROM TABELA",Cnn
 
2) Set Rs = Cnn.Execute ("SELECT * FROM TABELA")
 
Inserção de dados
 
'Depois de iniciar e abrir o recordset
 
Rs.AddNew
Rs("Campo") = valor
Rs.Update
 
ou por SQL (recomendo)
 
Cnn.Execute "INSERT INTO tabela (nome,idade) VALUES ('JOAO',18)"
 
Alteração de dados
 
'Localize o registro a alterar (se eu não estou enganado)
Rs.Find "id=1"
Rs("Campo") = valor
 
OU
 
'Mais rápido
RS.INDEX = "PrimaryKey" 'campo indexado
RS.Seek "id = 1"
 
ou por SQL (Recomendo)
 
Cnn.Execute "ALTER TABLE Tabela SET nome = 'JOSE' WHERE id = 1"
 
Deleção de dados
 
'Localize o registro como citado acima depois delete o dado
Rs.Delete
Rs.Update
 
em SQL (recomendo)
 
Cnn.Execute "DELETE FROM Tabela WHERE id = 1"
 
 
 
Bom, tentei ajudar ae... tomara q sirva pra vc.
 
Qq dúvida é só postar
 
at+
TÓPICO EDITADO
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página