Maap saya repost karena saya sudah cari referensi tapi belum dapet2. Sekali lagi maap jika penjelasannya kurang dimengerti, saya agak susah mengungkapkannya lewat tulisan.
Salam, Thoy ----- Original Message ----- From: Thoyib To: [email protected] Sent: Sunday, April 08, 2007 01:52 PM Subject: [Programmer-VB] Import csv to mdb Dear vbers, Saya sedang buat program untuk import file .csv ke dalam database .mdb. Tapi permasalahannya adalah coding yang saya buat hanya meng-create table di dalam database .mdb. Saya menghadapi kasus seperti ini: Apabila user mengimport file, misal : file1.csv , otomatis database .mdb nya akan meng-create table bernama tbfile1. Masalahnya adalah apabila user tsb mengimport file yg sama ke dalam database yang sama pula akan terjadi error "Table tbfile1 already exists". Menurut saya utk menangani masalah ini adalah (mohon koreksi jika salah) apabila user mengimport file yg sama dengan nama tabel yang sama pula, maka hanya recordnya saja yang bertambah. Mohon bantuan dari rekan2 bagaimana coding di vb-nya jika terjadi kasus2 spt ini ? Atau ada jalan lain ? Terima kasih sebelumnya. Fyi : Coding yang saya buat utk mengcreate table. Option Explicit Public Function ImportCSVtoAccess(strFilePath As String, strDBPath As String) As Boolean On Error GoTo err Dim oFileSys As New Scripting.FileSystemObject Dim oFile As TextStream Dim strConn As String Dim strCSV As String Dim strFldName As String 'String of fields' name Dim strTblName As String 'Table Name Dim strFV As String 'String of fields' values Dim iCount As Integer strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";Persist Security Info=False" If DEn.Con.State = adStateOpen Then DEn.Con.Close DEn.Con.ConnectionString = strConn DEn.Con.Open If oFileSys.FileExists(strFilePath) Then Set oFile = oFileSys.OpenTextFile(strFilePath, ForReading, False, TristateUseDefault) strTblName = "tbCasepick" ' Change Table Name Here While Not oFile.AtEndOfLine strCSV = oFile.ReadLine strFV = strCSV If strCSV <> vbNullString And iCount = 0 Then If InStr(strCSV, ",") = 0 Then DEn.Con.Execute "CREATE TABLE " & strTblName & " (Field1 TEXT(255))" iCount = iCount + 1 Else While InStr(strCSV, ",") <> 0 strCSV = Right(strCSV, Len(strCSV) - InStr(strCSV, ",")) iCount = iCount + 1 strFldName = strFldName & "Field" & iCount & " TEXT(255)," Wend strFldName = strFldName & "Field" & iCount + 1 & " TEXT(255)" DEn.Con.Execute "CREATE TABLE " & strTblName & " (" & strFldName & ")" End If End If strFV = Chr(34) & Replace(strFV, ",", """,""") & Chr(34) DEn.Con.Execute "INSERT INTO " & strTblName & " VALUES(" & strFV & ")" Wend ElseIf Not oFileSys.FileExists(strFilePath) Then MsgBox "File not exists", vbInformation, "Find" End If Exit Function err: MsgBox err.Description, , "Terjadi kesalahan!" End Function Best Regards, THOY -------------------------------------------------------------------------------- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.446 / Virus Database: 269.0.0/751 - Release Date: 4/7/07 10:57 PM
