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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Dúvida SQL filtrando dados e exibido em em combo
fjralberto
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 04/06/2008 16:51 hs            
Boa tarde a todos....


estou com uma grande dúvida no SQL... possuo três tabelas relacionadas em access... por exemplo:

TAB_PROF (profissional) -> campo: ID_PROF (key um para muitos) ;
TAB_PROFxDEMANDA -> campos: ID_PROF, ID_DEMANDA
TAB_DEMANDA -> campos: ID_DEMANDA (key um para muitos), DEMANDA

Bom, o campo ID_PROF (tab_prof) está relacionado com ID_PROF (tabela_profxdemanda) e o campo ID_DEMANDA (tab_profxdemanda) está relacionado com o campo ID_DEMANDA(tab_demanda).


A idéia é a seguinte... eu cadastro os profissionais na TAB_PROF, depois cadastro as demandas com suas respectivas ID´s na TAB_DEMANDA.

A TAB_PROFxDEMANDA, está servindo para eu estabelecer as demandas que os prof´s possuem direito...


Bom até aqui.. tudo bem!


agora a questão é no VB... Eu criei uma combo que é carregada os nomes dos profissionais quando o form é carregado... e eu gostaria que quando nesta combo eu escolhe-se o nome de algum profissional em uma outra combo aparecesse SOMENTE as DEMANDAS que casa profissional possui acesso!

Queridos... como eu fasso isso..cheguei a criar a conexão com o banco de dados.. mas acredito que o erro é entre meu SQL e a combo que deveria receber essas demandas... como eu resolvo isso?

Um grande abraço a todos!

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
   
Treze
não registrado
ENUNCIADA !
Postada em 04/06/2008 16:54 hs   
posta o código que você fez até agora para fazer este preenchimento
 
   
fjralberto
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 04/06/2008 16:56 hs            
GENERAL
    Dim ssql As String
    Dim rsDemanda As ADODB.Recordset
    Dim BuscaDemanda As ADODB.Recordset
____________________________________________
Private Sub cboNome_Click()

Dim BDemanda As New ADODB.Command

ssql = "SELECT TAB_PROF.ID_PROF, TAB_PROFxDEMANDA.ID_PROF, TAB_PROFxDEMANDA.ID_DEMANDA FROM TAB_PROF, TAB_PROFxDEMANDA WHERE TAB_PROF.ID_PROF = TAB_PROFxDEMANDA.ID_PROF"

With BDemanda
.ActiveConnection = conn
.CommandType = adCmdText
.CommandText = ssql
Set BuscaDemanda = .Execute
End With

With BuscaDemanda
If .EOF And .BOF Then
MsgBox "Impossivel completar a operação", _
vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
Else

rsDemanda.Open ssql, conn, adOpenDynamic, adLockPessimistic

  Do
  cboDemanda.AddItem rsDemanda.Fields("ID_DEMANDA")   'inclui o dado do campo nome do recordset
  rsDemanda.MoveNext                                  'move para o próximo registro
Loop While Not rs.EOF

rsDemanda.Close

Set BuscaDemanda = Nothing
Set BDemanda = Nothing
End If
End With

End Sub

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
   
Treze
não registrado
Postada em 04/06/2008 17:02 hs   
tenta esta alteração
 
Do While Not rsDemanda.EOF
  cboDemanda.AddItem rsDemanda.Fields("ID_DEMANDA")   'inclui o dado do campo nome do recordset
  rsDemanda.MoveNext                                                     'move para o próximo registro
Loop
     
fjralberto
SANTO ANDRÉ
SP - BRASIL
Postada em 04/06/2008 17:13 hs            
Então.. aparentemente.. não sofreu ocorreu nada...

Eu vou postar o código completo.. pois na realialidade... exitem outros códigos no mesmo private sub.... que funcionam normalmente... agora estou tentando inserir esse ai que eu postei anteriormente... e não acontece nada... eu vou postar ele nu e cru... por favor da uma olhadinha para mim... inclusive no SQL....










Private Sub cboNome_Click()

cmdIncLinha.Enabled = False

Dim cnnComando As New ADODB.Command

sql = "SELECT * FROM TAB_PROF WHERE NOME='" & cboNome.Text & "'"


With cnnComando
.ActiveConnection = conn
.CommandType = adCmdText
.CommandText = sql
Set Busca = .Execute
End With
With Busca
If .EOF And .BOF Then
MsgBox "Impossivel completar a operação", _
vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
Else
lblArea.Caption = !AREA
    
rsMes.Open "CONTROLE_DIAS_POR_MES", conn, adOpenDynamic, adLockPessimistic

cboMes.Clear 'Limpa a combo



Do

    cboMes.AddItem rsMes.Fields("Mes_Ano")
    '& "/" & rsMes.Fields("Ano") 'inclui o dado do campo mes e ano do recordset
    rsMes.MoveNext                                                 'move para o próximo registro

Loop While Not rsMes.EOF
rsMes.Close
        Grid.Cols = 1
        Grid.Rows = 1
        Grid.ColWidth(0) = 0
        linhas = 0



Set Busca = Nothing
Set cnnComando = Nothing
Screen.MousePointer = vbDefault
Exit Sub
End If
End With



------------------------------------------ o código acima funciona... o abaixo não....



Dim BDemanda As New ADODB.Command

ssql = "SELECT TAB_PROF.ID_PROF, TAB_PROFxDEMANDA.ID_PROF, TAB_PROFxDEMANDA.ID_DEMANDA FROM TAB_PROF, TAB_PROFxDEMANDA WHERE TAB_PROF.ID_PROF = TAB_PROFxDEMANDA.ID_PROF"

With BDemanda
.ActiveConnection = conn
.CommandType = adCmdText
.CommandText = ssql
Set BuscaDemanda = .Execute
End With

With BuscaDemanda
If .EOF And .BOF Then
MsgBox "Impossivel completar a operação", _
vbExclamation + vbOKOnly + vbApplicationModal, "Aviso"
Else

rsDemanda.Open ssql, conn, adOpenDynamic, adLockPessimistic

Do While Not rsDemanda.EOF
  cboDemanda.AddItem rsDemanda.Fields("ID_DEMANDA")   'inclui o dado do campo nome do recordset
  rsDemanda.MoveNext                                                     'move para o próximo registro
Loop

rsDemanda.Close

Set BuscaDemanda = Nothing
Set BDemanda = Nothing
End If
End With




End Sub

Alberto

"Em tijolo em tijolo a casa sai!"
Autor: Eu mesmo.
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 04/06/2008 17:21 hs            
Eu reparei que no código de cima possui
 
rsMes.Open "CONTROLE_DIAS_POR_MES", conn, adOpenDynamic, adLockPessimistic
que não tem nada a ver com:
 
sql = "SELECT * FROM TAB_PROF WHERE NOME='" & cboNome.Text & "'"
este CONTROLE_DIAS_POR_MES é alguma sub que você criou
   
Página(s): 1/4      PRÓXIMA »

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