hola.
tengo el siguiente codigo que utiliza un commandbuilder.  
Código:
  
Imports System.Data.OleDb
Public Class Form1
 Inherits System.Windows.Forms.Form
 Public adtiendas As OleDbDataAdapter
 Dim cb As OleDbCommandBuilder
 Public ds As New DataSet
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Dim comand As String
 Dim pkey(0) As DataColumn
        comand = "SELECT stor_id,stor_name,stor_address,city,state,zip FROM stores"
        adtiendas = New OleDbDataAdapter(comand, con1)
        adtiendas.Fill(ds, "stores")
        pkey(0) = ds.Tables("stores").Columns("au_id")
        ds.Tables("stores").PrimaryKey() = pkey
        cb = New OleDbCommandBuilder(adtiendas)
        DataGrid1.DataSource = ds.Tables("stores")
 End Sub
 
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
adtiendas.Update(ds, "stores")'error
        ds.Tables("stores").AcceptChanges()
EndSub
   en esta linea me dice que el comando dinamico select sql no puede especificar un comando update ya que no le pasa ninguna referencia al campo clave. 
gracias.saludos