Kan je via MS Access vba een SQL server tabel aanmaken?

Status
Niet open voor verdere reacties.

sanders1969

Gebruiker
Lid geworden
29 dec 2018
Berichten
243
Kan je via MS Access vba een SQL server tabel aanmaken?
Zo ja heeft iemand voorbeeldcode?
Ik ben ingelogd op SQL server database via de servername, username en wachtwoord via een VBA script.
Ik heb een MS Access database welke ik codematig in SQL Server wil aanmaken.
Ik kan alles handmatig via SQL Server Management Studio de tabellen aanmaken maar vind het een betere uitdaging om dit codematig te doen.
Plus ik maak in Access telkens nieuwe velden en tabellen en als de databases Access en SQL server verschillen dat zou het ideaal zijn dat ik de nieuwe velden of tabellen aanmaak.
Zo kan ik makkelijk klooien in de Access database ipv handmatig via SQL Server Management Studio de tabellen aanmaken.
 
De omzetting van Access naar SQL Server gebeurt normaal gezien via een Migratie Wizard. Dat laat me veronderstellen dat er toch wel één en ander komt bij kijken dat je niet zomaar in Access kan opvangen. Maar ik lees mee, vol belangstelling wat een ev. SQL Server kenner hier daarover op tafel legt !:cool:
 
Ik kan alles handmatig via SQL Server Management Studio de tabellen aanmaken maar vind het een betere uitdaging om dit codematig te doen.
Dat zal best, maar dat gaat je niet lukken. Tenzij ik me heel sterk vergis, en het nu (sinds een paar jaar) wél kan. Maar ik zet een hoop geld op Njet :).
 
Intern gebeurt het aanmaken van een SQL tabel altijd via een script. Zelfs als je de tabel aanmaakt via SSMS wordt intern een create table script uitgevoerd. Voorbeeld van een script:

Code:
USE [TSQL_NGA]
GO

/****** Object:  Table [Sales].[Orders]    Script Date: 2/06/2020 9:59:18 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [Sales].[Orders](
	[orderid] [int] IDENTITY(1,1) NOT NULL,
	[custid] [int] NULL,
	[empid] [int] NOT NULL,
	[orderdate] [datetime] NOT NULL,
	[requireddate] [datetime] NOT NULL,
	[shippeddate] [datetime] NULL,
	[shipperid] [int] NULL,
	[freight] [money] NOT NULL,
	[shipname] [nvarchar](40) NOT NULL,
	[shipaddress] [nvarchar](60) NOT NULL,
	[shipcity] [nvarchar](15) NOT NULL,
	[shipregion] [nvarchar](15) NULL,
	[shippostalcode] [nvarchar](10) NULL,
	[shipcountry] [nvarchar](15) NOT NULL,
 CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED 
(
	[orderid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [Sales].[Orders] ADD  CONSTRAINT [DFT_Orders_freight]  DEFAULT ((0)) FOR [freight]
GO

Mijn tip : maak een correct SQL script en laat dit via code uitvoeren, bv. via een pass-through query.
 
Uhmm pass-through query ga ik snel eens uitzoeken. Heb eerlijk gezegd nooit zoiets opgetuigd maar klinkt logisch. Ik hou jullie op de hoogte
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan