Nel file "adovbs.inc" sono definite la maggior parte delle costanti, quando cercavo di settare le proprietà della relazione utilizzavo due costanti che in VB erano definite probabilmente in un altro file che non includevo.

Alla fine ecco il codice pulito per creare al volo un DB con le sue tabelle, le sue chiavi primarie, gli indici e le relazioni!!!

codice:
<%
const nonIndicizzato = 0
const duplicatiAmmessi = 1
const duplicatiNonAmmessi = 2

const adRICascade = 1
const adKeyForeign = 2

Dim db' As DAO.DBEngine
Dim adodbConn' As ADODB.Connection
Dim adoxConn' As ADOX.Catalog

Sub Entrata()
	response.write("<center>CREA</center>")
End Sub

Sub CreateNewMDB(FileName)
    Set db = CreateObject("DAO.DBEngine.36")
    db.CreateDatabase FileName, ";LANGID=0x0409;CP=1252;COUNTRY=0", 64
    
    Set adodbConn = CreateObject("ADODB.Connection")
    adodbConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & FileName
 
    Set adoxConn = CreateObject("ADOX.Catalog")
    adoxConn.ActiveConnection = adodbConn
 

    'campiTabella1(0) = Array(NomeCampo, TipoCampo, SizeCampo, Chiave, Contatore, Indicizzato)
    Dim campitabella1(2)
    campitabella1(0) = Array("ID_GIRONI", adInteger, 3, False, True, duplicatiNonAmmessi)
    campitabella1(1) = Array("D_GIRONI", adVarWChar, 50, True, False, duplicatiNonAmmessi)
    campitabella1(2) = Array("PROSSIMO", adBoolean, 11, False, False, nonIndicizzato)
    Call CreaTabella("GIRONI", campitabella1)

    'campiTabella1(0) = Array(NomeCampo, TipoCampo, SizeCampo, Chiave, Contatore, Indicizzato)
    Dim campitabella2(3)
    campitabella2(0) = Array("ID_GIORNATE", adInteger, 3, False, True, duplicatiNonAmmessi)
    campitabella2(1) = Array("ID_GIRONI", adInteger, 3, True, False, duplicatiAmmessi)
    campitabella2(2) = Array("D_GIORNATE", adVarWChar, 50, True, False, duplicatiAmmessi)
    campitabella2(3) = Array("PROSSIMA", adBoolean, 11, False, False, nonIndicizzato)
    Call CreaTabella("GIORNATE", campitabella2)

    CreaRelazione "GIRONI", "ID_GIRONI", "GIORNATE", "ID_GIRONI"

    Set adoxConn = Nothing
    adodbConn.Close
    Set adodbConn = Nothing
    Set db = Nothing
End Sub


Sub CreaTabella(nomeTabella, campiTabella)
    Set objAdoxTable = CreateObject("ADOX.Table")       'Server.CreateObject("ADOX.Table")
    ' il nome della tabella...
    objAdoxTable.Name = nomeTabella
    
    For Each campo In campiTabella
        If campo(4) Then
            ' inseriamo il campo Contatore...
            Set objAdoxColumn = CreateObject("ADOX.Column")     'Server.CreateObject("ADOX.Column")
            Set objAdoxColumn.ParentCatalog = adoxConn
            With objAdoxColumn
                .Type = adInteger
                .Name = campo(0)
                .Properties("Autoincrement") = True
            End With
            ' eseguiamo la creazione del campo Contatore...
            objAdoxTable.Columns.Append objAdoxColumn
            Set objAdoxColumn = Nothing
        Else
            objAdoxTable.Columns.Append campo(0), campo(1), campo(2)
        End If
    Next
    
    chiavi = False
    For Each campo In campiTabella
        If campo(3) Then
            chiavi = True
            Exit For
        End If
    Next
    
    If chiavi Then
        ' aggiungo i campi in chiave primaria
        Set idxNew = CreateObject("ADOX.Index")         'Server.CreateObject("ADOX.Index")
            With idxNew
                .Name = "Chiavi"
                For Each campo In campiTabella
                    If campo(3) Then
                        .Columns.Append campo(0)
                    End If
                Next
                .PrimaryKey = True
            End With
        objAdoxTable.Indexes.Append idxNew
    End If
    

    For Each campo In campiTabella
        If (campo(5) > 0) Then
            Set indice = CreateObject("ADOX.Index")
            With indice
                .Name = "indice" & nomeTabella & campo(0)
                If (campo(5) = 2) Then
                    .Unique = True
                End If
                .IndexNulls = adIndexNullsDisallow
                .Columns.Append campo(0)
            End With
            objAdoxTable.Indexes.Append indice
            Set indice = Nothing
        End If
    Next

    adoxConn.Tables.Append objAdoxTable
    Set objAdoxTable = Nothing
End Sub


Sub CreaRelazione(tabellaPrimaria, campoPrimario, tabellaSecondaria, campoSecondario)
    Set chiavi = CreateObject("ADOX.Key")
    With chiavi
        .Name = "Relazione_" & tabellaPrimaria & "_" & campoPrimario & "_" & tabellaSecondaria & "_" & campoSecondario
        .Type = adKeyForeign
        .RelatedTable = tabellaPrimaria
        .UpdateRule = adRICascade
        .DeleteRule = adRICascade
        .Columns.Append campoSecondario
		.Columns(campoSecondario).RelatedColumn = adoxConn.Tables(tabellaPrimaria).Columns(campoPrimario)
    End With
    adoxConn.Tables(tabellaSecondaria).Keys.Append chiavi
    Set chiavi = Nothing
End Sub


Select Case request.querystring("azione")
	Case "CREA"			:	call CreateNewMDB(Server.MapPath("/mdb-database/databasediprova.mdb"))
	Case Else			:	call Entrata
End Select
%>
Chiunque avesse in mente eventuali implementazioni sono disponibile!!!