Problemas com Access e distinct (RESOLVIDO)

Bom dia a todos.
Gostaria que alguem me ajudasse a descobrir porque esta coisa não esta funcionando:

[code]public static void lcides() throws ClassNotFoundException, SQLException{
variaveis.con.close();
variaveis.con = funcoes.conectar();
//ResultSet rs1 = funcoes.rsf(“select distinct municipio from clis ORDER BY MUNICIPIO”);
ResultSet rs1 = funcoes.rsf(“select * from clis order by municipio”);

    rs1.next();
    while (rs1.next()){
        cidades.addItem(rs1.getString("municipio"));
    }
    
} [/code]

No codigo acima se mantenho a clausula distinct o raio do programa me da o seguinte erro :

Mar 14, 2013 10:24:39 AM nfeasy.pr jMenuItem5ActionPerformed
SEVERE: null
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Estado de cursor inv?lido
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3906)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5697)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:410)
at nfeasy.parti.lcides(parti.java:540)
at nfeasy.parti.(parti.java:45)
at nfeasy.pr.jMenuItem5ActionPerformed(pr.java:491)
at nfeasy.pr.access$1300(pr.java:47)
at nfeasy.pr$13.actionPerformed(pr.java:300)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Só pra constar minha conexao esta assim :

public static Connection conectar(){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String filename = "g:/BANCOS/nfeasy.mdb"; String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="; database+= filename.trim() + ";DriverID=22;READONLY=false}"; // add on to the end // now we can get the connection from the DriverManager Connection con = DriverManager.getConnection( database ,"",""); return con; } catch (Exception e) { System.out.println("Error: " + e); return null; } }

E o gerador de resultset assim :

[code]public static ResultSet rsf(String seletor) throws ClassNotFoundException, SQLException {
java.sql.Connection con;
java.sql.Statement st;
java.sql.ResultSet result = null;
//f.m(variaveis.servidor + " " + Banco);
try {
//Class.forName(“org.gjt.mm.mysql.Driver”);

   //con = java.sql.DriverManager.getConnection("jdbc:mysql://" + variaveis.servidor + Banco + "?useUnicode=true",variaveis.login,variaveis.senha);
   //con = conectar();
   st=variaveis.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
   
   result= st.executeQuery(seletor);
   return result;
   } catch (Exception Ex){
   //f.m(seletor);    
   f.m("Falha na execução de link com o servidor " + Ex); 
   return result;
   }

}[/code]

Agradeceria se alguem pudesse me dar uma luz sobre o assunto. Anteriormente estava usando Mysql mas decidi utilizar access porque me oferece mais facilidade para migrar os dados de maquina para maquina.

Grato

Dario

vo chorar. access de novo naaaooo

bom, vou te ajudar pq preciso fazer minha boa ação do dia kkkk

por favor nao use access…

cara, me passa a estrutura do banco, eu vi um clis ali acho que esta errado, nao seria só cli?

Sinto muito mesmo pelo access, mas foi a opção mais viavel considerando a estrutura e o conhecimento de informatica de meus clientes.
Quanto ao clis, é clis mesmo. O nome da tabela é clis, anteriormente estava como clientes, mudei apenas para saber se acontecia alguma coisa.

só para complementar, esta tabela foi importada do mysql onde funcionava direitinho. a complicação somente acontece no campo municipio. O interessante é que em outra area do sistema existe uma busca numa outra tabela cujo nome é municipios e tambem nesta tabela ocorre erro

que estranho. Mas manda a estrutura para verificarmos melhor.

quais sao as colunas e o nome da tabela

Estas são as colunas da tabela clis:

nome
nomefantasia
cnpj
cpf
ie
cadastromobiliario
municipio
cod_mun
cep
estado
licenca
codigoempresa
tipo
cod_pais
end
num
compl
bairro
suframa
dt_alt
nr_campo
cont_ant
cod_part
email
clientescol
documento
telefone
ROTA
doc

Não existem colunas de dados tipo data. O campo doc é o campo chave e seu preencimento e autonumeração.

Tenho uma outra tabela de nome municipios onde tambem esta dando problema, cuja estrutura é:

DOCUMENTO
codigoestado
codigomunicipio
xcidade
codmunicipio
municipio

sendo que o campo DOCUMENTO é autonumeração e chave

Outra informação que pode ser necessaria, estou usando netbeans 7.3

Outra informação curiosa é que usando esta alteração ele me mostra realmente as duas primeira cidades da lista:

[code]public static void lcides() throws ClassNotFoundException, SQLException{
variaveis.con.close();
variaveis.con = funcoes.conectar();
ResultSet rs1 = funcoes.rsf(“select distinct cidade from clis ORDER BY cidade”);
//ResultSet rs1 = funcoes.rsf(“select * from clis order by municipio”);

    rs1.next();
    funcoes.m(rs1.getString("cidade"));
    rs1.next();
    funcoes.m(rs1.getString("cidade"));
    
    while (rs1.next()){
        cities.addItem(rs1.getString("cidade"));
    }
    
} [/code]

Onde funcoes.m serve simplesmente para mostrar na tela o resultado da operação.

Mais uma informação interessante é que se retiro a clausula distinct ele lista normalmente todos os registros da tabela.