Ya he resuelto el problema del Datagrid en tiempo de ejecución, el código lo he sacado del libro Eidos de Visual Basic .NET que además modifica el tamaño de las columnas, pone colores,...
' Crear conexión
Dim oConexion As System.Data.OleDb.OleDbConnection
oConexion = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & System.IO.Directory.GetCurrentDirectory & "\persona.mdb")
' crear adaptador
Dim oDataAdapter As System.Data.OleDb.OleDbDataAdapter
oDataAdapter = New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM Persona WHERE Edad=20", oConexion)
' crear commandbuilder
Dim oCB As System.Data.OleDb.OleDbCommandBuilder = New System.Data.OleDb.OleDbCommandBuilder(oDataAdapter)
' crear dataset
'Dim odataSet As WindowsApplication2.DataSet1()
'odataSet = New WindowsApplication2.DataSet1
oDataAdapter.Fill(DataSet11, "Persona")
' asignar dataset al datagrid
Me.DataGrid1.DataSource = DataSet11
Me.DataGrid1.DataMember = "Persona"
' configurar grid por código
Me.DataGrid1.Anchor = (AnchorStyles.Bottom + AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Top)
Me.DataGrid1.CaptionText = "Datos de personas"
Me.DataGrid1.CaptionBackColor = Color.Turquoise
Me.DataGrid1.CaptionForeColor = Color.Black
' crear un objeto para estilos del datagrid
Dim oEstiloGrid As New DataGridTableStyle
oEstiloGrid.MappingName = "Persona"
oEstiloGrid.BackColor = Color.LightGoldenrodYellow
oEstiloGrid.AlternatingBackColor = Color.Aquamarine
' crear objetos de columna-grid para cada
' columna de la tabla a mostrar en el datagrid
Dim oColGrid As DataGridTextBoxColumn
' configurar cada objeto de columna-grid
oColGrid = New DataGridTextBoxColumn
oColGrid.TextBox.Enabled = False
oColGrid.Alignment = HorizontalAlignment.Center
oColGrid.HeaderText = "Edad de la persona"
' nombre de la columna del dataset que
' se mapea hacia esta columna del grid
oColGrid.MappingName = "Edad"
oColGrid.Width = 50
oColGrid.Alignment = oColGrid.Alignment.Left
' añadir la columna al objeto que contiene
' los estilos del datagrid, en concreto,
' a la colección de estilos de columna
' aquí solo pongo uno de ejemplo
oEstiloGrid.GridColumnStyles.Add(oColGrid)
oColGrid = Nothing
' una vez creadas todas las columnas de
' estilos para el grid, añadir el objeto
' que contiene el estilo personalizado
' a la colección de estilos de tablas
' del datagrid
Me.DataGrid1.TableStyles.Add(oEstiloGrid)
Ahora tan solo me falta saber lo de que la sentencia SELECT te devuelva como máximo X tuplas.
Si alguien lo sabe le estaría muy agradecido si lo dijera.
Un saludo y gracias de nuevo