Otro problema

naveguito
15 de Enero del 2004
Hola a todos,estoy creando una tabla en access desde vb6 y me lo hace correctamente pero si nombro la nueva tabla igual a una existente me da error y lo solucione + ó - con esto:

Private Sub Cmdaceptar_Click()
If Txt(0).Text = "" Or Txt(1).Text = "" Then
MsgBox "No ha cubierto todos los campos", vbInformation + vbOKOnly, "Atención :"
Txt(0).SetFocus
Exit Sub
End If
Progreso.Visible = True
Lblmsg.Caption = "Creando nueva tabla"
'Creamos la conexion con la base de datos
Ruta = Txt(0).Text
Nueva_Tabla = Txt(1).Text
Conexion.Provider = "Microsoft.Jet.OLEDB.4.0"
'Abrimos la conexion
Conexion.Open Ruta
'Creo los campos de la nueva tabla
On Error GoTo Valida
StrSql = "CREATE TABLE " & Txt(1).Text & "(Refprov STRING, Ref STRING, Tipencod STRING, PasC STRING, Giro STRING, Tipcod STRING, Tencod STRING, Tipeje STRING, Teje STRING, Brida STRING, Tipcon STRING, Inter STRING, CS STRING, Fuente STRING, Cons STRING, CAxial STRING, CRadial STRING, Nrev STRING, Nimp STRING, RV STRING, RC STRING, FT STRING, TA STRING, TF STRING, IP STRING, Hum STRING, Foto IMAGE, Precio INTEGER)"
Conexion.Execute StrSql
'Cerramos la conexion
Conexion.Close
Progreso.Value = 30
Progreso.Value = 50
Lblmsg.Caption = ""
Lblmsg.Caption = "Nueva tabla creada"
Progreso.Value = 75
Progreso.Value = 100
MsgBox "La tabla ha sido creada en " & Txt(0).Text, vbInformation + vbOKOnly, "Tabla creada con éxito :"
Valida:
MsgBox "Cambia el nombre.Hay una existente con el mismo nombre", vbInformation + vbOKOnly, "Atención :"
Exit Sub
Validar_Nueva = True
Unload Me
End Sub

Lo que pasa es k cuando vuelvo nombrar la tabla con otro nombre me da el siguiente error:

La operacion no esta permitida si el objeto esta abierto.¿Como puedo hacer para evitar nombrar una tabla nueva igual a otra existente?

Muchas gracias a todos

Saludos
Navego

-=Aldo=-
15 de Enero del 2004
Hola naveguito, siento que además de no poder darte solución a tu problema me temo que quiero presentarte otro, como he visto que utilizas instrucciones SQL en Visual. El tema es el siguiente: Tengo una DB en Access y en un formulario tengo, por ejemplo, dos text box. Bueno en estos el usuario deberìa cargar lo que serian mis variables y estas meterlas en una consulta SQL luego de que se pulse un command... como tengo que definir la variable? solo como string? y como defino para que se ejecute la consulta y luego tomar los resultados de esta (en el caso de que sea una de seleccion) pues es una de accion sòlo lo quiero meter en la tabla. Desde ya gracias y disculpam, pero ojala que tu o alguien me pueda ayudar!!!.
-=Aldo-=
Desde Py.

-=Aldo-=
15 de Enero del 2004
Me olvide de decirte que aun estoy usando el formulario de Access, luego me preocuparé (ya con mayores conocimientos de DB's, espero, de pasarlo a VB). Si alguien sabe de una url donde se explique esto cuanto mejor!! osino me temo que los estare molestando a cada momento...:-/ GRaCiAs!

naveguito
15 de Enero del 2004
T voy poner un ejemplo de una sentencia sql(funciona correctamente) y tu lo modificas segun t convenga:
DataTickets.RecordSource = "select * from MOVIMIENTOS where FECHA=#" + Fechaint(Txtdia) + "#"
DataTickets.Refresh

T explico :
Datatickets es el nombre de un control data
Movimientos es el nombre de la tabla
despues del where le pones la condicion,que es de la siguiente forma:el nombre del campo(en este caso FECHA y lo igualas a tu textbox para mas igualdades le concatenes & "nombre campo=#" textbox.

Esto ultimo no estoy muy seguro pero creo k es asi,si me pegas tu sentencia sql le hecho un vistazo

El refresh se hace para que optimice la tabla,es decir,para que se quede con los registros que cumplen ese igualdad.

Espero que te sirva.

P.D:Si decides pegar tu sentencia SQL hazlo en otro post,ya k asi puede entrar más gente para ayudar

-=Aldo=-
15 de Enero del 2004
Yo otra vez!:-/ jeje
Estuve mirando tu ejemplo y vi que usas una variable (conexion) que le das por ejemplo conexion.provider, luego conexion.Execute Strsql
Me podrias decir de que tipo es esa variable conexion, tal vez me ayude a comprender un poco mas...
Es del tipo type no? y que pones en su declaraciòn?
Disculpa las molestias, y desde muchas gracias

naveguito
15 de Enero del 2004
Esa es una conexion que utilizo para crear una tabla en una base de datos access desde vb6 no tiene nada que ver con tu problema,pero de todos modos te pego como estan definidas ambas:

Dim StrSql As String
Dim Conexion As New ADODB.Connection

Siento no poder ayudarte con tu problema,si estuviera en vb6 aun podria hacer algo,xk segun lo que lei tu lo k kieres hacer es añdir datos a una tabla,vamos creo yo