Usuário com melhor resposta
Combos

Pergunta
-
Olá
Poderia fazer combos como no exemplo abaixo?
Eu crio uma consulta com dois parametros para estado e região e crio um formulário com dois combos para selecionar os parametros desta consuta.
Mas se eu quiser selecionar somente o combo de Estado e ter o retorno somente de Estado e vice-versa?
O problema é que quando eu clico somente no combo de Estado a consulta não me retorna nada, só funciona quando eu clico nos dois.
Mauríciosegunda-feira, 13 de abril de 2009 20:50
Respostas
-
O objeto consulta não é muito maleável com parâmetros opcionais. A solução que costumo usar neste caso é montar a cláusula WHERE no VBA, conforme os controles que estiverem preenchidos.
Exemplo:
Dim strSQL As String Dim strWhere As String strSQL = "SELECT * FROM TuaTabela" If IsNull(Me.cboEstado)=False Then If Len(strWhere)=0 Then strWhere = " WHERE " Else strWhere = strWhere & " AND " End If strWhere=strWhere & "Estado='" & Me.cboEstado & "' " End If If IsNull(Me.cboCidade)=False Then If Len(strWhere)=0 Then strWhere = " WHERE " Else strWhere = strWhere & " AND " End If strWhere=strWhere & "Cidade='" & Me.cboCidade & "' " End If CurrentDB.QueryDefs("TuaConsulta").SQL = strSQL & strWhere
Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br- Marcado como Resposta Luiz Cláudio - MVPModerator sexta-feira, 17 de abril de 2009 01:52
terça-feira, 14 de abril de 2009 01:58Moderador
Todas as Respostas
-
O objeto consulta não é muito maleável com parâmetros opcionais. A solução que costumo usar neste caso é montar a cláusula WHERE no VBA, conforme os controles que estiverem preenchidos.
Exemplo:
Dim strSQL As String Dim strWhere As String strSQL = "SELECT * FROM TuaTabela" If IsNull(Me.cboEstado)=False Then If Len(strWhere)=0 Then strWhere = " WHERE " Else strWhere = strWhere & " AND " End If strWhere=strWhere & "Estado='" & Me.cboEstado & "' " End If If IsNull(Me.cboCidade)=False Then If Len(strWhere)=0 Then strWhere = " WHERE " Else strWhere = strWhere & " AND " End If strWhere=strWhere & "Cidade='" & Me.cboCidade & "' " End If CurrentDB.QueryDefs("TuaConsulta").SQL = strSQL & strWhere
Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br- Marcado como Resposta Luiz Cláudio - MVPModerator sexta-feira, 17 de abril de 2009 01:52
terça-feira, 14 de abril de 2009 01:58Moderador -
Olá
Muito obrigado pela dica.
Não conheço programação VBA, por isso gostaria de saber em que evento coloco este código acima?
Maurícioterça-feira, 14 de abril de 2009 12:32 -
Luiz
Funcionou!!!
Muito Obrigado- Marcado como Resposta maumauboy quarta-feira, 15 de abril de 2009 16:37
- Não Marcado como Resposta Luiz Cláudio - MVPModerator sexta-feira, 17 de abril de 2009 01:52
quarta-feira, 15 de abril de 2009 16:37