שאלה (באקסס)

eMaster

New member
שאלה (באקסס)

אני מעוניין ליצור קובץ ארכיון, שבעת מחיקת רשומה , הרשומה תעבור לטבלא שנראת אותו דבר בדיוק, בקובץ אחר. האם יש באקסס אופציה אוטומטית לדבר כזה? ואיך עושים דבר כזה בVB?
 

nirasaf

New member
אני הייתי עושה את זה ב-SQL

ב2 שלבים : 1. פקודת INSERT בSQL יכולה להכניס את הרשומה הזו על כל הנתונים שבה מטבלה אחת לטבלה שנייה. 2. פקדות DELETE ב-SQL שתמחוק את הרשומה המקורית.
 

eMaster

New member
המשך לשאלה

אני גם הייתי עושה זאת בדרך הזאת. השאלה היא איך אני יוצר קשר עם מסד בקובץ אחר ומפעיל עליו פקודות כאלה?
 

tberger

New member
טבלאות מקושרות

ניתן דרך ACCESS לעבוד עם טבלאות ממסדי נתונים שונים כמו של ACCESS בעצמו או של SQL SERVER, ORACLE ועוד. הדרך נקראת טבלאות מקושרות. בחלון הטבלאות לחץ עם לחצן ימני ובתפריט בחר טבלאות מקושרות (או באנגלית LINK TABLES) ייפתח חלון ואז יש לבחור את סוג הקובץ (למטה כאשר ברירת המחדל היא ACCESS) ואת שם הקובץ. יופיע חלון עם כל הטבלאות אליו ניתן לקשר ויש לבחור את הטבלאות הדרושות. בהצלחה
 

eMaster

New member
תודה ועוד שאלה:

ראשית, האם ניתן לוותר על קישור הטבלאות? ולעשות איזה קשה לקובץ חיצוני? ועכשיו אחרי שהבאתי את הטבלאות, איזה פקודה בVB אני כותב את שורות INSERT?
 

tberger

New member
שתי אפשרויות לדוגמא

א. כאשר עובדים עם טבלאות מקושרות עובדים באותו אופן בדיוק כמו שהטבלה היתה ב DB שלנו ולכן הפקודה תהיה: Dim SQL As String SQL = "insert into emp(name) values(´4444´)" DoCmd.RunSQL (SQL) כאשר לא רוצים לעבוד עם טבלאות מקושרות יש צורך לפתוח את הקישור ב VBA ולכן נקבל את הפקודות הבאות: Dim comm As ADODB.Command Dim con As ADODB.Connection Set con = New ADODB.Connection con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_test1.mdb" con.Open Set comm = New ADODB.Command comm.CommandText = "insert into emp(name) values(´kkkkkkkkkk´)" comm.ActiveConnection = con comm.Execute אילו הן רק דוגמאות ויתכנו אופציות נוספות.
 
למעלה