I have examined your sample and fixed some problems in it.
First, I found that the cached iGrid reference (lf_object_suche) may be empty when you try to pass it as a parameter to the func_iGrid_aufbauen sub:

Click to View Image188 View(s)
You should not use the 'On Error GoTo error_handler' statement in your subs while debugging the app. If you commented this out, you would have seen that the problem you reported is not in iGrid's FillfromRS method. You simply tried to call the BeginUpdate method for the reference containing 'Nothing' in func_iGrid_aufbauen.
Another problem part of code was this statement:
lf_object.FillFromRS adorec_rs, igFillRSColsIfEmptyAndRows, adorec_rs(0)
It's not obvious, but the problem is in the last parameter. According to the iGrid documentation, this parameter should contain "the name of the field in the RS recordset used to populate the row keys in iGrid". In fact you passed a whole ADODB Field object, but iGrid expected just its string name:
lf_object.FillFromRS adorec_rs, igFillRSColsIfEmptyAndRows, adorec_rs(0).Name
And one more strange thing I found is that your query from the query does not work. At least, iGrid cannot enumerate its rows. So I changed the line
adorec.Open "SELECT * FROM qry_test", CurrentProject.Connection[/code]
to
[code=vb]adorec.Open "SELECT DISTINCT table.ID_THEMA, table.FK_ID_UNTERNEHMEN FROM [table];", CurrentProject.Connection
, and saw the proper result in the form.
A glitch in MS Access/ADODB? Or maybe, this is a very complex construction for the universal implementation of the FillFromRS method that can enumerate various types of ADO and even DAO recordstes?
In any case, here is the working version of the sample flavored with my comments:
test2.zip
(29kb) downloaded 172 time(s).