Access
 sql >> Teknologi Basis Data >  >> RDS >> Access

Bidang Teks atau Numerik – Metode SQL Sederhana untuk Mengganti Tipe Data

Bidang Teks atau Numerik – Metode SQL Sederhana untuk Mengganti Tipe Data

Saya baru-baru ini mengerjakan sebuah proyek di mana klien kami menjual produk di seluruh AS yang dibangun di Access dengan SQL Server, ini bekerja dengan mengimpor data ke SQL dan kemudian menganalisisnya dengan laporan Access. Sayangnya setiap pelanggan mungkin memiliki format kunci utama sebagai bilangan bulat panjang dan yang lainnya berupa string, (kombinasi angka dan string), kami segera menemukan bahwa hal itu menyebabkan masalah dengan laporan yang tidak diurutkan dengan benar. Laporan dirancang dengan mempertimbangkan bilangan bulat dan string mengacaukan urutannya. Kami perlu menemukan solusi yang tidak memerlukan penambahan kode ke frontend Access kami untuk menangani masalah tersebut, melainkan menggunakan kekuatan SQL Server untuk menyajikan data terlepas dari format yang digunakan pada kunci utama.

Tampilan untuk menyelamatkan

Satu hal yang rapi tentang menautkan tampilan dan tabel SQL Server di Access:Anda dapat memberi mereka nama apa pun yang Anda inginkan. Saya memanfaatkannya dengan keluar dari sumber tabel tertaut dengan pandangan jika kunci utama adalah string atau membiarkannya sebagai tabel asli jika itu bilangan bulat. Memiliki nama tabel yang sama di Access terlepas dari sumbernya berarti tidak perlu mengubah kode saya.

Kami mendorong penautan menggunakan tabel SQL Server

Juan telah membuat blog tentang mengarahkan penautan tabel dari SQL Server, tempat kami menggunakan kode untuk membaca catatan dalam tabel yang disebut tblTablePermissions untuk membuat tautan di frontend Access kami menggunakan kode VBA. Biasanya kami menautkan hanya di awal proyek atau ketika tabel baru ditambahkan ke server, tetapi untuk proyek ini saya perlu mengambil langkah lebih jauh dengan menukar nama tabel dengan nama tampilan di tblTablePermissions jika klien menggunakan string untuk kunci utama.

Ada dua bidang di tblTablePermissions, satu disebut Table_Name dan yang lain disebut AccessName, kode kami menggunakan yang pertama untuk mengetahui tabel atau tampilan mana yang digunakan sebagai sumber dan yang terakhir untuk nama tabel di Access. Yang saya lakukan hanyalah membuat skrip sederhana yang dapat dijalankan oleh pelanggan saya untuk menukar nama tabel dengan nama tampilan untuk setiap pemasangan yang membutuhkannya.

Berikut skrip yang saya gunakan:

--Update tblTablePermissions For Numeric Type Code--
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

HAPUS DARI [dbo].[tblTablePermissions]
WHERE [Table_Name] =('tablename1')
or [Table_Name] =('tablename2')
or [Table_Name] =('tablename3' )
GO
IINSERT INTO [dbo].[tblTablePermissions] ([Table_Name], [Access_Name], [IndexedColumns], [UserSelect], [UserInsert], [UserUpdate], [UserDelete])
NILAI ('vw_tablename1', 'tablename1', ”, 'True', 'True', 'True', 'True'),
('vw_tablename2', 'tablename2', 'field1,field2,field3 ', 'Benar', 'Benar', 'Benar', 'Benar'),
('vw_tablename3', 'namatabel3', 'bidang1, bidang2', 'Benar', 'Benar', 'Benar', 'Benar')
GO

Dalam skrip saya di atas, saya pertama-tama menghapus tabel dari tblTablePermissions yang ingin saya tukar dengan tampilan dan kemudian saya menggunakan pernyataan sisipan untuk menambahkan tampilan yang akan menggantikan tabel, perhatikan nama tampilan berbeda tetapi bidang Access_Name sama dengan yang dihapus, memungkinkan kode Akses saya berfungsi terlepas dari jenis bidang kunci utama mana yang digunakan.

Bagaimana saya menggunakan CAST untuk menerjemahkan kunci utama

Dalam tampilan saya menggunakan fungsi CAST untuk mengonversi bidang Jenis dari string menjadi integer:

CREATE VIEW vw_tablename1
AS
SELECT RangeID,
UseFlagAsNeeded,
CAST(Type AS int) AS Type,
Line,
Ownership,
Include,
Public,
Limit,
RangeA,
RangeB,
RangeC,
SSMA_TimeStamp
FROM dbo.tablename1;
GO

Klien kami sekarang dapat dengan mudah mengonfigurasi setiap instalasi berdasarkan data pelanggan!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menetapkan Gambar ke Tree View Nodes

  2. Manfaat dan Kerugian Menggunakan Prosedur Tersimpan

  3. Menghubungkan SAP Lumira ke Microsoft Access

  4. Apa Keuntungan dari Sistem Manajemen Data?

  5. Apa Perbedaan Antara Office 365 dan Office 2016?