Nunca habia visto ese tipo de error y de curiosidad googleando tambien veo que indican que ese error salta cuando se inserta registros (casi obvio) que excende el tamaño del campo, pero tu estas creando tablas....mmm, no sabría ayudarte doc y ojala alguien la chunte para saber sobre esto.
Pregunta de curioso ¿que le mandas en strTabla?
Y solo de puro mañoso factorizaria el sql (no aporta a tu problema pero por si aca):
Public Function sqlCreateMes(sMes As String, sTabla As String)
sqlCreateMes = "CREATE TABLE " & sTabla & "(RUT VARCHAR(12) NOT NULL PRIMARY KEY UNIQUE, D1 CHAR, D2 CHAR, D3 CHAR, D4 CHAR, D5 CHAR, D6 CHAR, D7 CHAR, D8 CHAR, " & _
"D9 CHAR, D10 CHAR, D11 CHAR, D12 CHAR, D13 CHAR, D14 CHAR, D15 CHAR, D16 CHAR, D17 CHAR, D18 CHAR, D19 CHAR, D20 CHAR, D21 CHAR, D22 CHAR, " & _
"D23 CHAR, D24 CHAR, D25 CHAR, D26 CHAR, D27 CHAR, D28 CHAR, D29 CHAR"
Select Case UCase(sMes)
Case "FEBRERO"
sqlCreateMes = sqlCreateMes & ", HORAS INTEGER, HORASHASTA VARCHAR(10));"
Case "NOVIEMBRE", "SEPTIEMBRE", "ABRIL", "JUNIO"
sqlCreateMes = sqlCreateMes & ", D30 CHAR, HORAS INTEGER, HORASHASTA VARCHAR(10));"
Case Else '"ENERO", "MARZO", "MAYO", "JULIO", "AGOSTO", "OCTUBRE", "DICIEMBRE"
sqlCreateMes = sqlCreateMes & ", D30 CHAR, D31 CHAR, HORAS INTEGER, HORASHASTA VARCHAR(10));"
End Select
End Function
Un detalle, a Febrero le estas mandando D29, presumo que D29 es el dia y solo hay 29 cada 4 años... por si aca.
Saludos