VIEW NO ACCESS

SIDSIL 06/04/2010 12:56:17
#338692
Boa Tarde

Criei uma View dentro do Access, dai usei o comando Delete para excluir todos os dados da View.Dai os dados sao excluidos da View, como deveria ser, porem eles estao sendo excluidos tambem da tabela principal me deixando sem registro nenhum.

Isso e normal?

Obrigado e um Abraço
TECLA 06/04/2010 16:32:05
#338705
Poste as linhas de código no tópico.
SIDSIL 06/04/2010 17:19:36
#338715
Obrigado por sua ajuda TECLA.

Na verdade resovi criar uma View porque nao consegui resolver um outro problema e mesmo que tivesse funcionado nao acho que seria a melhor maneira em programacao mas como preciso resolver o meu problema principal, resolvi tentar atraves da View e ainda sem sucesso.

Eu criei a View manualmente no Access,depois selecionei os registros desejados, deletei todos os registros da View, mandei gravar os novos registros.

**** Seleciono os registros desejados
strSelect = [Ô]Select TBCLI_ID,TBCLI_NOME,TBCLI_DATANASC,TBCLI_SOCIOSIM,TBCLI_SOCIONAO From Alunos[Ô]
strSelect = strSelect & [Ô] WHERE month(TBCLI_DATANASC) >=[Ô] & Month(CDate(MskInicio.Text))
strSelect = strSelect & [Ô] AND day(TBCLI_DATANASC) <=[Ô] & Day(CDate(MskFim.Text))
strSelect = strSelect & [Ô] ORDER BY TBCLI_DATANASC ASC[Ô]

With rsAlu
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.CacheSize = 50
.Source = strSelect
.ActiveConnection = Conexao
.Open
End With

*** Deleto todos os registros da View
strSelect = [Ô]DELETE from VISAO [Ô]
Conexao.Execute (strSelect)

***** Leio a Tabela Principal para jogar os registros do recordSet na View.
While Not rsAlu.EOF

*** Abro a View
strSelect = [Ô]Select * From VISAO[Ô]

With rsView

.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.CacheSize = 50
.Source = strSelect
.ActiveConnection = Conexao
.Open
End With

rsView.AddNew

*** Gravo os registros da Tabela Principal na View

rsView!TBCLI_NOME = rsAlu!TBCLI_NOME
rsView!TBCLI_DATANASC = rsAlu!TBCLI_DATANASC
rsView!TBCLI_SOCIOSIM = CDbl([Ô]0[Ô] & rsAlu!TBCLI_SOCIOSIM)
rsView!TBCLI_SOCIONAO = CDbl([Ô]0[Ô] & rsAlu!TBCLI_SOCIONAO)

rsView.Update
rsView.Close
rsAlu.MoveNext
Wend

rsAlu.Close

Ao final, nao tenho nenhum registros gravado na View e todos os registros da outra tabela sao apagados.
Detalhe : Criei uma View da propria Tabela principal.Isso e possivel?

Obrigado e um Abraço
MICROSCHEME 06/04/2010 17:25:27
#338719
Cara, essas linhas:

strSelect = [Ô]DELETE from VISAO [Ô]
Conexao.Execute (strSelect)

Apagam todos os registros da tabela Visao

Tu executou uma sql direto na conexão pra apagar tudo

. . .

SIDSIL 06/04/2010 18:05:45
#338721
Obrigado por sua ajuda

Na verdade eu realmente quero apagar todos os dados da Tabela Visao que e a View.
Mas os dados da tabela principal que gera ess View, tambem estao sendo apagados e isso eu nao quero.


Obrigado
MICROSCHEME 07/04/2010 15:49:49
#338797

Cara.

Não localizaei no teu código nenhuma linha que possa estar deletando os registros da tabela alunos.

Acredito que no meio deste código que tu postou, deve haver alguma linha que tá deletando
tudo da tabela principal.

O que ajudaria, se tu concordasse, zip teu projeto e posta pra gente baixar e tentar localizar a linha que
tá matando o teu trampo.

Blz . . .

DIOGOMUNARIN 07/04/2010 16:36:28
#338803
Cara se sua view ta carregando a tabela de aluno, eh normal que ao apagar os dados da view, ele apague os dados dos alunos, pois eh referenciado.
Eh a mesma coisa que se vc fizer uma consulta no acess e apagar os dados da consulta, o access vai apagar os dados da tabela da consulta.
Tópico encerrado , respostas não são mais permitidas